Ich habe zwei widersprüchliche Definitionen von Fremdschlüssel.Muss ein Fremdschlüssel auf einen Primärschlüssel oder einen Kandidatenschlüssel verweisen?
Von Wikipedia
the foreign key is defined in a second table, but it refers to the primary key in the first table.
Aus meiner Skriptum:
Foreign key does not have to match a primary key but must match a candidate key in some relation
, was was ist? Muss ein Fremdschlüssel auf einen Primärschlüssel oder einen Kandidatenschlüssel verweisen?
Unterstützung für Einschlussabhängigkeit Einschränkungen ist eine * gute * Sache. Die * Syntax * ist "schlecht", weil sie die Einschränkung als Fremdschlüssel bezeichnet, wenn dies nicht der Fall ist. – sqlvogel
@sqlvogel: Ihre Dokumente sagen "Die Behandlung von Fremdschlüsselverweisen auf nicht eindeutige Schlüssel oder Schlüssel, die NULL-Werte enthalten, ist für Vorgänge wie UPDATE oder DELETE CASCADE nicht gut definiert. Es wird empfohlen, Fremdschlüssel zu verwenden, die nur UNIQUE (einschließlich PRIMARY) verweisen) und NOT NULL Schlüssel. " Es scheint mir, dass die MySQL-Entwickler eine schlechte Implementierung von Fremdschlüssel-Constraints statt einer guten Implementierung von Einschlussbeschränkungen durchgeführt haben. Wären nicht alle Operationen auf einer Einschlussbeschränkung klar definiert? –
Guter Punkt. Das wusste ich nicht. – sqlvogel