Wie verbindet man zwei Primärschlüssel zu einem zusammengesetzen?

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