sql >> Database >  >> RDS >> Mysql

Kan ik dezelfde externe-sleutelbeperking in twee verschillende tabellen gebruiken?

Er zijn kolommen en er zijn externe sleutels (FK's) en er zijn beperkingen.

U kunt een kolomnaam in een tabel hebben, ongeacht andere tabellen.

Een FK is een referentietabel en -kolommenset en een referentietabel en -kolomset. Alle namen samen identificeren een FK. Het is een conceptueel ding over een database.

Een FK-beperking, die een beperking is, is iets waarvan de naam uniek moet zijn in de database. Het heeft en handhaaft een bijbehorende FK, namelijk degene die wordt beschreven in zijn verklaring. U kunt meerdere FK-beperkingen in een tabel hebben die dezelfde FK afdwingen.

Het DBMS heeft automatisch unieke namen voor FK-beperkingen. Bijvoorbeeld een naamgedeelte plus een nummergedeelte waarbij de beperking de nummerde FK-voorwaarde is van de tabel met die naam. U kunt dezelfde naamloze FK-beperkingsdefinitietekst meerdere keren in een tabel en in meerdere tabellen hebben, elk voor een andere FK-beperking. (Degene in een bepaalde tabel dwingen dezelfde FK af.)

U moet een uniek naamgevingsschema hebben voor wanneer u ze een naam wilt geven. Verwijzen naar en tabelnamen waarnaar wordt verwezen, moeten worden gebruikt, en indien nodig onderscheid maken tussen kolomnamen.

Verwarrend genoeg zeggen we FK wanneer we FK-beperking bedoelen.

Als je zegt "Het is dezelfde externe sleutel in twee verschillende tabellen", dan worden termen misbruikt. Er zijn twee verschillende FK's betrokken, en bijbehorende FK-beperkingen. Je bedoelt misschien "het zijn dezelfde verwijzingskolommen en verwezen naar tabel en kolommen in beide FK-beperkingen" of "het is dezelfde tekst waarnaar wordt verwezen in de FK-beperkingsverklaringen van beide tabeldeclaraties". Maar de namen van de FK-beperkingen moeten uniek zijn.

Als u zegt "In beide gevallen verwijst het naar een interne gebruiker", bevestigt u dat het type en/of de tabel van de kolom waarnaar wordt verwezen hetzelfde zijn voor beide FK-beperkingen. Maar het zijn verschillende FK-beperkingen voor verschillende FK's.



  1. Afstemming van PL/SQL-prestaties voor LIKE '%...%'-query's met jokertekens

  2. ProxySQL:alle bronnen van verschillende Nines

  3. parse.com open-source alternatieven voor backend

  4. Een maand toevoegen aan een datum in SQLite