I have to setup 11 databases who all sync their data to a central master- server via a one-way (slave to master) transfer.

The master will do aggregate reporting.

It seems to me the easiest way to do this is to have identical structure for all 12 databases.

Each of the slaves will have a unique system id number assigned.

Every table will use a compound primary key (systemid, id) to identify each record.

I'm looking at the latest trunk source and trying to figure out how best to make this happen.

I suppose generalizing keys so that they contain 'n' segments would also be related to allowing non-integer keys. However the source has lots of code like:

    def instanceAttrToIDAttr(self, attr):
        # @@: Right now, because of how names are created for foreign
        # keys, you can't really change this style.
        return attr + "ID"


I realize this requirement wasn't forseen. What would I need to do to generalize keys more so I can do this?

Brad Clements,                bkc@murkworks.com    (315)268-1000
AOL-IM or SKYPE: BKClements