sql >> Database teknologi >  >> RDS >> Mysql

Kan jeg bruge den samme fremmednøglebegrænsning i to forskellige tabeller?

Der er kolonner, og der er fremmednøgler (FK'er), og der er begrænsninger.

Du kan have et kolonnenavn i en tabel uanset andre tabeller.

En FK er et referencetabel- og kolonnesæt og et refereret tabel- og kolonnesæt. Alle navnene tilsammen identificerer en FK. Det er en konceptuel ting ved en database.

En FK-begrænsning, som er en begrænsning, er en ting, hvis navn skal være unikt over databasen. Den har og håndhæver en tilknyttet FK, nemlig den, der er beskrevet i dens erklæring. Du kan have flere FK-begrænsninger i en tabel, der håndhæver den samme FK.

DBMS har automatiske unikke navne til FK-begrænsninger. F.eks. en navnedel plus en taldel, hvor begrænsningen er nummeret på FK-begrænsningen i tabellen med det navn. Du kan faktisk have den samme navnløse FK-begrænsningsdefinitionstekst flere gange i en tabel og i flere tabeller, hver for en anden FK-begrænsning. (De inde i en given tabel håndhæver den samme FK.)

Du bør have et unikt navneskema til, hvornår du vil navngive dem. Reference- og referencetabelnavne bør inddrages, og om nødvendigt skelne kolonnenavne.

Til forveksling siger vi FK, når vi mener FK-begrænsning.

Når du siger "Det er den samme fremmednøgle i to forskellige tabeller", misbruger det udtryk. Der er to forskellige FK'er involveret og tilsvarende FK-begrænsninger. Du mener måske "det er de samme refererende kolonner og refererede tabel og kolonner i begge FK-begrænsninger" eller "det er den samme tekst, der refererer til begge tabelerklæringers FK-begrænsningserklæringer". Men FK-begrænsningsnavnene skal være unikke.

Når du siger "I begge tilfælde refererer det til en intern bruger", bekræfter du, at typen og/eller tabellen i den refererede kolonne er den samme for begge FK-begrænsninger. Men de er forskellige FK-begrænsninger for forskellige FK'er.



  1. Python Mysql, kommandoer ude af synkronisering; du kan ikke køre denne kommando nu

  2. oracle blob tekstsøgning

  3. Android SQLite Query - Henter de seneste 10 poster

  4. Sådan kører du SHOW LOCALES i MariaDB