bezieht sich der Fremdschlüssel immer auf einen eindeutigen Schlüssel in einer anderen Tabelle?
Ist es nicht möglich, dass foreign key(einzelne Spalte) in einer untergeordneten Tabelle, die Verweise auf einen übergeordneten Schlüssel, die einige doppelte Werte?
InformationsquelleAutor der Frage ratsy | 2012-01-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Durch den SQL-standard, eine foreign-key-Referenz muss entweder der Primärschlüssel oder einen eindeutigen Schlüssel der übergeordneten Tabelle. Wenn die primary key mehrere Spalten, die den Fremdschlüssel müssen die gleiche Anzahl und Reihenfolge der Spalten. Daher der foreign key verweist auf eine eindeutige Zeile in der übergeordneten Tabelle; es kann keine Duplikate.
Re Ihr Kommentar:
Wenn
T.A
ein Primärschlüssel ist, dann Nein, Sie können keine Duplikate. Jeder Primärschlüssel muss eindeutig sein und nicht null. Deshalb, wenn die untergeordnete Tabelle eine foreign key-Referenzierung des parent-Primärschlüssel, es muss mit einem nicht-null -, unique-Wert, und daher Verweise genau eine Zeile in der übergeordneten Tabelle. In diesem Fall können Sie nicht eine untergeordnete Reihe, die Referenzen von mehreren übergeordneten Zeilen.Du kann erstellen Sie eine untergeordnete Reihe, deren foreign key-Spalte ist NULL, in welchem Fall es verweist auf keine Zeile in der übergeordneten Tabelle.
InformationsquelleAutor der Antwort Bill Karwin
Ja, es ist möglich für einen Fremdschlüssel referenzieren einer Spalte doppelte Werte.
Dies kann geschehen, wenn der Primärschlüssel verwendet einen nicht-eindeutigen index und ist nicht validiert, wenn es erstellt wird. (Aber ich habe nie gesehen, eine situation, wie dies im wirklichen Leben. @Bill Karwin wies darauf hin, es wäre sehr unübersichtlich. So kann dies nicht eine situation, die Sie wirklich brauchen, zu kümmern.)
InformationsquelleAutor der Antwort Jon Heller
Nein, es ist nicht möglich.
Beim definieren einer foreign key-Einschränkung für eine Tabelle ist, heißt es, ist nur eine entsprechende Taste auf der fremden Tabelle. Wenn ein Vielfaches gab es auf der fremden Tabelle, welche wäre gemeint?
Wikipedia hat diese definition auf die Fremdschlüssel Eintrag:
Candidate keys sind eindeutig innerhalb einer Tabelle.
InformationsquelleAutor der Antwort Oded