Kombination zweier Feld als Primärschlüssel bei SQL?

...komplette Frage anzeigen

1 Antwort

Das ist überhaupt kein Problem. Der Primärschlüssel wie jeder andere Index auch kann als Verbundschlüssel (engl. compound key) aus mehreren Spalten bestehen und muss nur insgesamt eindeutig sein. Er kann auch in dieser Form als Fremdschlüssel verwendet werden. Syntaktisch muss er dann immer in Klammern geschrieben werden. Als Beispiel ein Auszug aus der Tabellendefinition einer meiner 57 Datenbanktabellen:

primary key (mgnr,recdat,recnr,kurz,pnr),               foreign key fkyre1  (mgnr)                        references mitgl on delete restrict                   on update restrict
foreign key fkyre1 (mgnr)
references mitgl on delete restrict
on update restrict



Ich habe solche Fälle ziemlich oft, Verknüpfungen mache ich mit WHERE statt mit JOIN, das erscheint mir transparenter und es lassen sich auch weniger übliche Verknüpfungen estellen.

Es gibt allerdings verschiedene Philosophien zum Konzipieren einer Datenbank. Wie überall gibt es immer Leute, die es besser wissen als andere und spezelle Lehrmeinungen vertreten. Im Informatikunterricht wird das bevorzugt, was sich für den Unterricht am besten eignet. Eines dieser obskuren Philosophien besagt, dass der Primärschlüssel immer eine numerische ID sein sollte. Eine SQL-Datenbank kann aber weit mehr als die Schulbeispiele, die auf der Uni vermittelt werden.


Was möchtest Du wissen?