Laden...

Mehrere Primary Keys?

Erstellt von Paulo vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.091 Views
P
Paulo Themenstarter:in
172 Beiträge seit 2005
vor 16 Jahren
Mehrere Primary Keys?

verwendetes Datenbanksystem: SQL Server 2005

.. hatte da am Anfang etwas falsch verstanden und meine Tables immer mit mehreren Primary Keys ausgestattet wenn ich Fremdschlüssel gebraucht hab.

Habe also z.B. in einer Tabelle:
PK gID
PK UserID
PK KategorieID

Also alle 3 Felder makiert und dann "Set Primary Key" via SQL Management Tool.

Wenn ich das richtig verstanden habe hätte ich lieber nur gID zum PK gemacht und für UserID und KategorieID einen Index angelegt oder?

Was hat das nun für Folgen dass ich alle 3 als PK definiert habe?

Danke!

664 Beiträge seit 2005
vor 16 Jahren

Du wirfst gerade ein paar Begriffe durcheinander. Ein PK wird über einen Fremdschlüssel referenziert. Pro Tabelle kann es nur einen PK geben. In deinem Fall ist er aus drei Elementen zusammengesetzt. Ein Index ist wieder eine etwas andere Angelegenheit.

Wie sieht deine Datenbank denn aus?

P
Paulo Themenstarter:in
172 Beiträge seit 2005
vor 16 Jahren

Beispiel:

Spiele Tabelle:
(PK) GameID
gName
(PK) gKategorie
gSpieler
gGenre

Kategorie Tabelle:
(PK) KategorieID
(PK) GameID
kName

Wie müsste ich das umstellen dass das korrekt ist? Eigentlich wäre gKategorie und GameID bei der Kat Tabelle die Fremdschlüssel. Im Moment sind es alles Primary Keys.. Hab im SQL Management Studio auch nichts zu "Fremdschlüssel" gefunden?!

Danke!

664 Beiträge seit 2005
vor 16 Jahren

Die Tabellen sind IMHO etwas verkehrt aufgebaut.

Spiele

GameID (PK)
gName
gKategorieID (Fremdschlüssel)
gSpieler
gGenre

Kategorie

(PK) KategorieID
kName

Wie Fremdschlüsselbeziehungen übers SSMS definiert werdern weiß ich leider nicht. Per SQL funktioniert dies über das REFERENCES-Statement.