# Beziehungen SQL 1:1



## tobiastt (19. Juli 2005)

Hallo

ich möchte eine 1:1 Beziehung erstellen zwischen den Tabellen A und B. Beide haben die Spalte NR. Wenn ich in B was lösche soll der Datensatz in A gelöscht werden, wenn keine weiteren Tabellen auf den Satz zugreifen. Wenn ich in A was lösche soll es in A und in allen anderen gelöscht werden. Wie ein Dreieck A ist ganz oben und darunter die Tabellen B, C, D.....

Wie mach ich das 

Danke

Gruß Tobias


----------



## Thomas Darimont (19. Juli 2005)

Hallo!

 Wenn eine so "enge Verbindung" zwischen zwei Tabellen besteht, sollte man sich Gedanken machen, ob man diese Tabellen nicht zu einer zusammenführen könnte.

 Gruß Tom


----------



## tobiastt (19. Juli 2005)

nein das soll nicht geschehen.

Wie kann ich eine 1:1 Beziehung in SQL erstellen ?

Gruß Tobias


----------



## Thomas Darimont (19. Juli 2005)

Hallo!

   Bsp.:
   Du hast zwei Entitäten A und B. Ein A kennt immer genau ein B und ein B kennt immer genau ein A.

   Tabelle A:
   id, nutzdaten1, nutzdaten2, fk_id_b

   Tabelle B:
   id, nutzdaten1, nutzdaten2, fk_id_a

 Der Fremdschlüssel in Tabelle A (fk_id_b) zeigt nun auf den Wert der id des entsprechenden Datensatzes in Tabelle B. Umgekehrt zeigt der Fremdschlüssel (fk_id_a) in Tabelle B auf die id des entsprechenden Datensatzes in Tabelle A.
 Zusätzlich kann man hier mit not-null Constraints Arbeiten. Ist das ganze als Aggregation oder Komposition modelliert? Je nachdem könnte man auch mit kaskadierendem Löschen Arbeiten. Zur Gewährleistung der referentiellen Integrität lassen sich auch Foreign Key Constrainst verwenden.

   Gruß Tom


----------



## WieGehts (19. Juli 2005)

Das schreit ja förmlich nach einer Tabelle – aber gut, wenn damit vielleicht die DB-Zugriffe zu schnell sind …


----------



## tobiastt (19. Juli 2005)

Hallo

also ich versuchs mal zu erklären.

Es werden Motoren getestet mit x - Parametern. Zu jeden Motor mit genau einer Seriennummer gehört ein Satz an Daten...Ölverbrauch....Leistung usw. Jetzt hab ich die Daten ein bissel getrennt nach Typ, weil alles in einer Tabelle wäre sehr viel (Tabelle wäre sehr lang)  Eigentlich könnte alles in eine Tabelle. Wenn ich es auf mehrere Tabellen verteile brauche ich ja auch keine Beziehungen oder Jeder Datensatz ist durch die Seriennummer eideutig Identifiziert. Also ein Motor hat nur einen Ölverbrauch und eine Leistung usw. ist eben nur nicht alles in einer Tabelle. 

Ist das O.K so  Dann lass ich die Beziehungen weg sind ja hier Quatsch 

Gruß Tobias


----------

