Thema: Delphi GUID als Index?

Einzelnen Beitrag anzeigen

DelphiDeveloper

Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
 
Delphi XE2 Enterprise
 
#7

Re: GUID als Index?

  Alt 9. Mär 2004, 10:51
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.
  Mit Zitat antworten Zitat