6.4 FK-Constraint

Benjamin Blümchen
Windoof-User
Windoof-User
Beiträge: 25
Registriert: 7. Dez 2005 21:59

6.4 FK-Constraint

Beitrag von Benjamin Blümchen »

Hallo,

warum ist für Lager kein FK-Constraint auf Produkt.Name zu setzen?
Vielleicht weil in Lager und der zugehörigen Foreign-Key Tabelle, also Produkt, die Spalten unterschiedlich heißen?!

Evtl. kann mir jemand noch mal kurz erklären, wie das mit dem FK-Constraint funktioniert.

Gruuuß

henß
Mausschubser
Mausschubser
Beiträge: 45
Registriert: 18. Nov 2009 14:50

Re: 6.4 FK-Constraint

Beitrag von henß »

Schönen Abend,

Womöglich hast Du eine veraltete Musterlösung? In meiner Version gibt es den FK ProduktName für "Lager".

Sollte sich die Frage dadurch noch nicht erübrigt haben: Ein FK-Constraint stellt lediglich sicher, daß für
den gegebenen Wert tatsächlich ein Tupel mit solch einem Wert für den definierten (oder implizierten)
PrimaryKey in einer anderen Tabelle existiert.

Eine Frage meinerseits: Sind bei der Definition auch abkürzende Konstrukte wie folgende erlaubt?

Code: Alles auswählen

ProduktName varchar(20) NOT NULL REFERENCES Produkt( Name ) 
oder noch "schlimmer" bei PK bzw. FK ProduktID:

Code: Alles auswählen

ProduktID int(10) NOT NULL REFERENCES Produkt
Kam leider noch nicht dazu, mir die Standards zu Gemüte zu ziehen ;)

Benutzeravatar
Jinx
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 114
Registriert: 29. Okt 2007 19:52
Wohnort: Aua-Aua-Land. Da wo die Veilchen blühen

Re: 6.4 FK-Constraint

Beitrag von Jinx »

Keine Ahnung, aber ich habe mal eine Frage zu deinem Post henß.

ProduktID int(10) NOT NULL

müsste das nicht

ProduktID int NOT NULL

heißen, da in den Lösungen bei "INT" nie ein Wert angegeben wurde. Glaube im Tut wurde gesagt, dass der Wertebreich bei INT fest und immer gleich ist.
Kein Ophasen-Tutor 2010/11

henß
Mausschubser
Mausschubser
Beiträge: 45
Registriert: 18. Nov 2009 14:50

Re: 6.4 FK-Constraint

Beitrag von henß »

Hallo Jinx,

ich gehe davon aus, daß es SQL-Standard ist für int eine feste Größe anzunehmen,
allerdings bin ich von MySQL gewohnt die Anzahl Ziffern einschränken zu können.
Aber auch dort ist eine Eingabe ohne Breitenangabe gültig.

Sicherer dürftest Du mit Deiner Annahme sein, ich hoffe derweil, daß man es bei
der Korrektur mit den Standards nicht zu eng sieht :)

Antworten

Zurück zu „Archiv“