Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kann ich dieselbe Fremdschlüsseleinschränkung in zwei verschiedenen Tabellen verwenden?

Es gibt Spalten und Fremdschlüssel (FKs) und Einschränkungen.

Sie können einen Spaltennamen in einer Tabelle haben, unabhängig von anderen Tabellen.

Ein FK ist ein referenzierender Tabellen- und Spaltensatz und ein referenzierter Tabellen- und Spaltensatz. Alle Namen zusammen identifizieren einen FK. Es ist eine konzeptionelle Sache bei einer Datenbank.

Eine FK-Einschränkung, die eine Einschränkung ist, ist ein Ding, dessen Name in der Datenbank eindeutig sein muss. Es hat und erzwingt ein zugehöriges FK, nämlich das in seiner Deklaration beschriebene. Sie können mehrere FK-Einschränkungen in einer Tabelle haben, die dieselbe FK erzwingen.

Das DBMS hat automatisch eindeutige Namen für FK-Einschränkungen. ZB ein Namensteil plus ein Zahlenteil, wobei die Einschränkung die nummerische FK-Einschränkung der Tabelle mit diesem Namen ist. Sie können denselben namenlosen Definitionstext für FK-Einschränkungen tatsächlich mehrmals in einer Tabelle und in mehreren Tabellen haben, jede für eine andere FK-Einschränkung. (Die in einer gegebenen Tabelle erzwingen denselben FK.)

Sie sollten ein eindeutiges Benennungsschema haben, wenn Sie sie benennen möchten. Referenzierende und referenzierte Tabellennamen sollten einbezogen werden, und wenn nötig unterscheidende Spaltennamen.

Verwirrenderweise sagen wir FK, wenn wir FK-Einschränkung meinen.

Wenn Sie sagen "Es ist derselbe Fremdschlüssel in zwei verschiedenen Tabellen", werden Begriffe missbraucht. Es sind zwei verschiedene FKs beteiligt und entsprechende FK-Beschränkungen. Sie meinen vielleicht "es sind dieselben referenzierenden Spalten und referenzierten Tabellen und Spalten in beiden FK-Einschränkungen" oder "es ist derselbe Text, der in den FK-Einschränkungsdeklarationen beider Tabellendeklarationen referenziert". Aber die Namen der FK-Einschränkungen müssen eindeutig sein.

Wenn Sie sagen "In beiden Fällen bezieht es sich auf einen internen Benutzer", bestätigen Sie, dass der Typ und/oder die Tabelle der referenzierten Spalte für beide FK-Einschränkungen gleich sind. Aber es sind unterschiedliche FK-Einschränkungen für unterschiedliche FKs.