Seite 1 von 1

6.4 FK-Constraint

Verfasst: 9. Sep 2010 17:21
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ß

Re: 6.4 FK-Constraint

Verfasst: 10. Sep 2010 00:25
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 ;)

Re: 6.4 FK-Constraint

Verfasst: 10. Sep 2010 19:24
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.

Re: 6.4 FK-Constraint

Verfasst: 10. Sep 2010 19:44
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 :)