Ludger: Frage zum DB-Design

Beitrag lesen

Hi,

Wie wuerdet Ihr diese Einstellung realisieren?

mit einer Verknüpfungstabelle und Unique-Constraint (z.B. PK) auf beide Verknüpfungsspalten.

also sowas:

Vertraege (DBTabelle)
Vertrag_GUID (Datenfeld)
Vertrag_ID (Datenfeld)
Vertrag_Timestamp (Datenfeld)
...

Vertragsgegenstaende (DBTabelle)
Vertragsgegenstand_GUID (Datenfeld)
Vertragsgegenstand_Timestamp (Datenfeld)
...

Vertraege_Vertragsgegenstaende_Relationships (DBTabelle)
Vertraege_Vertragsgegenstaende_Relationship_GUID (Datenfeld)
Vertraege_Vertragsgegenstaende_Relationship_Timestamp (Datenfeld)
Vertraege_Vertragsgegenstaende_Relationship_Vertrag_GUID (Ddatenfeld)
Vertraege_Vertragsgegenstaende_Relationship_Vertragsgegenstand_GUID (Datenfeld)

Das dürfte in allen DBMSsen weitgehend gleich sein.

Denke ich auch.

Als dritte Spalte könnte sich ggf. die Position anbieten, was natürlich nicht ganz unproblematisch ist;

Meinst Du die Position eines Vertragsgegenstandes innerhalb eines Vertrags (Das ist nicht angefordert) oder etwas anderes?

vermutlich wirst Du nur zwei Spalten verwenden wollen. Index über alle Spalten, die Reihenfolge hängt von Deiner Wunschselektion und -sortierung ab.

OK, aber die Sache mit der "Einschraenkung, dass ein Vertragsgegenstand einem Vertrag maximal einmal zugeordnet werden kann", war die eigentliche Herausforderung fuer die drei genannten DBMSe.

Gruss nach Karlsruhe!
Ludger