sql >> Databáze >  >> RDS >> Mysql

Mohu použít stejné omezení cizího klíče ve dvou různých tabulkách?

Existují sloupce a cizí klíče (FK) a existují omezení.

V tabulce můžete mít název sloupce bez ohledu na ostatní tabulky.

FK je referenční tabulka a sada sloupců a odkazovaná sada tabulek a sloupců. Všechna jména dohromady identifikují FK. Je to koncepční věc týkající se databáze.

Omezení FK, které je omezením, je věc, jejíž název musí být v databázi jedinečný. Má a vymáhá přidružený FK, konkrétně ten, který je popsán v jeho prohlášení. V tabulce můžete mít více omezení FK, které vynucují stejné FK.

DBMS má automatické jedinečné názvy pro omezení FK. Např. část názvu plus část čísla, kde omezení je číselné FK omezení tabulky s tímto názvem. Ve skutečnosti můžete mít stejný bezejmenný text definice vazby FK vícekrát v tabulce a ve více tabulkách, každou pro jinou vazbu FK. (Ty, které jsou uvnitř dané tabulky, vynucují stejné FK.)

Měli byste mít jedinečné schéma pojmenování, kdy je chcete pojmenovat. Měly by být zahrnuty názvy odkazovaných a odkazovaných tabulek a v případě potřeby rozlišování názvů sloupců.

Je matoucí, že když máme na mysli omezení FK, říkáme FK.

Když říkáte „Je to stejný cizí klíč ve dvou různých tabulkách“, zneužívá to výrazy. Jsou zde zahrnuty dvě různé FK a odpovídající omezení FK. Možná máte na mysli "jsou to stejné odkazující sloupce a odkazovaná tabulka a sloupce v obou omezeních FK" nebo "je to stejný text odkazující v deklaracích omezení FK obou deklarací tabulky". Ale názvy omezení FK musí být jedinečné.

Když řeknete „V obou případech se to týká interního uživatele“, potvrzujete, že typ a/nebo tabulka odkazovaného sloupce jsou stejné pro obě omezení FK. Ale jsou to různá omezení FK pro různé FK.



  1. Jak převedu starší příkaz levého vnějšího spojení v Oracle?

  2. MySQL2 Ruby drahokam nelze nainstalovat 10.6

  3. Jak uložit a načíst bajtové pole (obrázková data) do az databáze SQLite?

  4. psql:server neočekávaně ukončil připojení