Ich bin in einer Situation, in der wir eine neue Version der Software herauskommen haben, die eine separate Datenbank (signifikante Änderungen im Schema) von der alten verwenden wird. Es wird eine beträchtliche Zeit dauern, in der sowohl das neue als auch das alte System in Produktion sein werden und wir müssen sicherstellen, dass eindeutige IDs zwischen den beiden Datenbanken erzeugt werden (wir wollen keine Zeile in der Datenbank A) die gleiche ID wie eine Zeile in der Datenbank B) haben. Die Datenbanken sind Sybase.Verhindern doppelter Schlüssel zwischen mehreren Datenbanken
Mögliche Lösungen Ich habe kommen mit:
- einen Datentyp verwenden, die wirklich große Zahlen unterstützt und einen Bereich für jede zuweisen, in der Hoffnung sie nie überlaufen.
- Verwenden Sie negative Werte für die eine Datenbank und positive Werte für die andere.
- Hinzufügen einer zusätzlichen Spalte, die die Datenbank identifiziert und die Kombination aus dieser und der aktuellen ID als Schlüssel verwendet.
- Cry.
Was könnte ich noch tun? Gibt es elegantere Lösungen für die Zusammenarbeit der beiden Datenbanken? Ich glaube, die beiden Datenbanken werden auf demselben Server sein, wenn das wichtig ist.
Sind Sie bereit, Änderungen an den PKs auf den alten, neuen und/oder beiden DBs vorzunehmen? Wie viele Tabellen sind mit dem PK-Problem verbunden? Können die PKs unterschiedliche Datentypen in verschiedenen DBs haben oder müssen sie identisch sein? Es ist leicht zu empfehlen, GUIDs zu verwenden, aber wenn Sie in beiden DBs massive Änderungen vornehmen müssen, um dies zu erreichen, ist es dann wirklich der beste Ansatz? –