Wie verbindet man zwei Primärschlüssel zu einem zusammengesetzen?
Hallo,
ich habe das ER Modell in Informatik und muss darauf Tabellen erstellen, mein Problem ist jedoch, dass ich die erstellten Tabellen für die SQL Abfragen nicht verbinden kann, da jeder einen anderen Primärschlüssel (mal Text, mal Zahl als Wert).
Nun meine Frage: wie kann man die Tabellen miteinander zusammensetzen, dass man damit Abfragen durchführen kann?
Programm: Open office base
2 Antworten
Das ist doch normal, dass jede Tabelle einen anderen Primärschlüssel hat. Für eine Verknüpfung von zwei Tabellen ist in erster Linie die Aufgabe maßgebend: Was soll bei der Abfrage herauskommen. An zweite Stelle kommt: Geben die Tabellen überhaupt das her, was ich brauche. Die Datenfelder, die ich für die Verknüpfung benötige, müssen vorhanden sein. Ob das Primärschlüssel, Fremdschlüssel oder sonstige Spalten sind, man kann alles verknüpfen. Nur muss das im Zusammenhang mit einer Aufgabe einen Sinn ergeben.
Warum willst Du die beiden Primärschlüssel verknüpfen, wenn das offensichlich keinen Sinn macht? Um eine Datenbank zu entwerfen, muss man doch wissen, wofür diese mal gebraucht wird und welche Anfragen aller Voraussicht nach anfallen. Auch ein Konstrukteur kann kein Gerät bauen, wenn er nicht weiß, wofür das mal verwendet werden soll.
Was du benötigst sind Zwischentabellen und Fremdschlüssel.
Tabelle 1 sind Schüler deren Primäschlüssel ist z.B. eine Nummer
Tabelle 2 sind Klassen da ist der Primärschlüssel Text (2a,1b,6c...)
Der Primärschlüssel der Tabelle 2 ist Fremdschlüssel in Tabelle 1 da 1 Schüler in genau einer Klasse ist aber in einer Klasse mehr als ein Schüler.
Hast du N zu N brauchst du ne zwischentabelle in der beide Primärschlüssel als Fremdschlüssel stehen und entweder die Kombi der beiden Fremdschlüssel als Primärschlüssel dient oder ein eigener neuer Primärschlüssel existiert.
Wenn du die Tabelle nso verbunden hast kannst du auch darüber abfragen z.B. select alle schüler wo klasse = 1a oder
oder select * from schüler s, Klasse k
where s.Klasse=k.Primärschlüssel