fuer deine ich nenne es mal "replikation on demand" sieht man in der tat oft guids als
ids vor. Ich hatte in meinem letzten Projekt sowas auf dem
sql-server implementiert und da war die vorgabe meines auftraggebers guids zu verwenden. Auch zusammengesetzte PK's aus ID+MandantID hatte ich schon gesehen.
Bei Interbase oder Firebird wuerde ich das wie folgt realisieren. In der lokalen
DB gibts in jeder Tabelle eine Mandant_id bei dem export auf den server wird dann im bevore insert trigger
folgendes gemacht.
sagen wir wir rechnen mit max 100 lokalen DBs
Code:
CREATE TRIGGER TEST_TABELLE_SERVER_BI FOR TEST_TABELLE_SERVER
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_TEST_TABELLE_SERVER_ID,1) || (new.MANDANT_ID*100);
END
jetzt muesste das exportieren funktionieren. Die ID's sind sprechende bezeichner, denn
die id's mit der endung 200 kommen alle vom mandanten 2, die mit endung 9000 vom mandanten 90
usw. Dadurch kann man auch später noch erkennen von welchem mandant die Saetze angelegt wurden. Auch Masterdetail Relationen machen auf den lokalen
DB's kein problem, die Reihenfolge beim export wirst du ja sicherlich bedenken.
Jetzt weiß ich nicht was du bei einem export alles machst:
EXPORT = neue lokale Daten exportieren , LOESCHEN und wieder importieren?
Bei dem import koennten daher noch probleme auftauchen.
Jenachdem wie deine export strategie ist. Es wäre auch denkbar die lokalen ID's
stets negativ zu vergeben, somit koennte man auch erkennen, dass diese nie
exportiert wurden.