Hier is een uitgebreide gids voor het toepassen van buitenlandse toetsen in een database, inclusief voorbeelden en overwegingen:
Inzicht in vreemde toetsen
* Doel: Buitenlandse sleutels handhaven relaties tussen tabellen in een relationele database. Ze zorgen voor gegevensintegriteit door ongeldige gegevensitems te voorkomen.
* hoe het werkt: Een vreemde sleutelkolom in één tabel verwijst naar de primaire sleutelkolom van een andere tabel. Dit creëert een link en zorgt ervoor dat de waarden in de vreemde sleutelkolom bestaan als geldige primaire sleutelwaarden in de tabel waarnaar wordt verwezen.
stappen om een vreemde sleutel toe te passen
1. Definieer de tabellen:
* Oudertabel: De tabel die de primaire sleutel bevat (de tabel waarnaar wordt verwezen).
* onderliggende tabel: De tabel die de vreemde sleutel bevat (de tabel die verwijst naar de bovenliggende tabel).
2. Geef de kolommen op:
* primaire sleutel: De kolom in de bovenliggende tabel die fungeert als de primaire sleutel.
* Buitenlandse sleutel: De kolom in de onderliggende tabel die verwijst naar de primaire sleutel.
3. Maak de beperking: De syntaxis varieert enigszins afhankelijk van uw databasesysteem (MySQL, PostgreSQL, SQL Server, enz.). Hier is een algemene aanpak:
`` `SQL
ALTER TABEL MILDTABLENAME
Beperking van de beperking toevoegen
Buitenlandse sleutel (ForeignKeyColumn)
REFERENTIES MARENTableName (PrimaryKeyColumn);
`` `
* Beperkingsnaam: Een unieke identificatie voor de beperking.
* childTableName: De naam van de tabel met de buitenlandse sleutel.
* ForeignKeyColumn: De naam van de kolom in de onderliggende tabel die fungeert als de buitenlandse sleutel.
* Medewerker: De naam van de tabel met de primaire sleutel.
* PrimaryKeyColumn: De naam van de kolom in de bovenliggende tabel die als de primaire sleutel fungeert.
voorbeelden
scenario: Een database maken voor een bibliotheek. We hebben een tafel voor "boeken" en een tafel voor "leners".
Tabellen:
* boeken:
* `book_id` (primaire sleutel)
* `Title`
* `Auteur`
* leners:
* `lener_id` (primaire sleutel)
* `name`
* `Adres`
* `book_id` (vreemde sleutel, verwijst naar de` book_id` in de boekentabel)
SQL -code:
`` `SQL
- Maak de boekentabel
Maak tafelboeken (
book_id int primaire sleutel,
Titel Varchar (255),
Auteur Varchar (255)
);
- Maak de tabel van de leners met de buitenlandse sleutelbeperking
Maak tabelleners (
lener_id int primaire sleutel,
Naam Varchar (255),
Adres Varchar (255),
book_id int,
Foreign Key (book_id) Referenties Books (book_id)
);
`` `
Belangrijkste overwegingen
* Gegevensintegriteit: Buitenlandse toetsen helpen ervoor te zorgen dat gegevens in gerelateerde tabellen consistent blijven. U kunt bijvoorbeeld geen lenerrecord invoegen met een `book_id` die niet in de tabel 'boeken' bestaat.
* Cascade -opties: U kunt bepalen hoe buitenlandse sleutelbeperkingen zich moeten gedragen wanneer gegevens worden gewijzigd of verwijderd in de bovenliggende tabel.
* Cascade Delete: Verwijdert rijen in de onderliggende tabel wanneer een bijpassende rij in de bovenliggende tabel wordt verwijderd.
* Cascade -update: Bijwerkt gerelateerde rijen in de onderliggende tabel wanneer de overeenkomstige rij in de bovenliggende tabel wordt bijgewerkt.
* prestaties: Buitenlandse toetsen kunnen de prestaties beïnvloeden, vooral met grote tafels. Overweeg indexen te gebruiken om de querysnelheid te verbeteren.
* databasesysteemspecifieke syntaxis: Raadpleeg de documentatie voor uw specifieke databasebeheersysteem (DBMS) voor precieze syntaxis.
Laat het me weten als u voorbeelden in een bepaald databasesysteem wilt zien. Ik ben blij om meer specifieke instructies te geven! |