Also nehmen wir an ich habe folgende zwei Tabellen:
Strassen
GruppenID:
GUID
GueltiVon: TDateTime;
GueltigBis: TDateTime;
Name: string;
Abschnitte
ID:
GUID
Strassen_ID:
GUID
Nummer: Integer
Primärschlüssel ist GueltigVon+GruppenID bei Strassen, sowie ID bei Abschnitte. Eigentlich hab ich mir gedacht ich mach eine Fremdschlüsselbzeiuhg zwischen Strassen_ID und GruppenID. In Strassen_ID dürfen somit nur GUIDs eingetragen werden die in Strassen stehen, löscht man eine Strasse werden Abschnitte ebenfalls gelöscht. Nur leider geht das nicht da ich auch immer eine Bezihung für GueltigVon angeben muss: "A pair of matching columns is required to create relationshipt" bzw. "The Columns in Table 'Abschnitte' do not match an existing primary key or UNIQUE contrainst." (MSSQL2000)
Hat jemand eine Idee (ausser einfügen einer neuen Tabelle die eine ID hat waruf beide dann verweisen?) bzw. Trigger?
Im Grunde wäre das für folgendes Beispiel:
Abschnitt X gehört zu Strasse Y. Strasse Y wird umbenannt (alte GueltigBis wird auf das Datum gesetzt, neue GueltigVon ebenfalls). Abschnitt X gehört somit zu der gleichen Straße (welche zeitabhängig ist).
Strassen+Abschnitte wrden nicht aus der
DB gelöscht, nur das GueltigBis Datum verändert wenn eine "gelöscht" wird.