Primary key és foreign key
Primary key és foreign key: hogyan azonosítasz egy sort, hogyan építesz kapcsolatot és hogyan védi a referenciális integritást az adatbázis?
Röviden
A primary key egyedileg azonosít egy sort. A foreign key azt mondja ki, hogy egy oszlop értéke egy másik – vagy akár ugyanazon – tábla érvényes kulcsára hivatkozzon. Ez a kapcsolat nem csak dokumentáció: az adatbázis ellenőrizni tudja.
Mit jelent a primary key és foreign key?
A primary key egyedileg azonosít egy sort. A foreign key azt mondja ki, hogy egy oszlop értéke egy másik – vagy akár ugyanazon – tábla érvényes kulcsára hivatkozzon. Ez a kapcsolat nem csak dokumentáció: az adatbázis ellenőrizni tudja.
Kulcsok kapcsolata
01
users.id PK
02
projects.id PK
03
projects.owner_id FK
04
integrity
Hogyan működik a gyakorlatban?
Például `projects.owner_id` hivatkozhat `users.id`-re. Törlésnél vagy frissítésnél az ON DELETE/UPDATE akció dönthet arról, hogy tiltás, cascade vagy más viselkedés történjen.
- Primary key legyen stabil és egyedi.
- Foreign key megakadályozhat árva hivatkozásokat.
- Composite key több oszlop együttese is lehet.
- ON DELETE CASCADE kényelmes, de a hatását tudatosan kell vállalni.
Gyakorlati fejlesztői szemlélet
Kapcsolótáblánál – például project_members – gyakran a két foreign key együtt egyedi constraintet kap. Ettől az adatbázis maga is tiltja, hogy ugyanaz a tagság véletlenül kétszer létrejöjjön.
Gyakori hibák és félreértések
- Foreign keyt csak ORM-szintű relationként deklarálni DB constraint nélkül.
- Minden kulcsot üzleti, változó szövegből képezni.
- Cascade törlést nagy adathálón hatáselemzés nélkül bekapcsolni.
Források és szabványok
A technikai részletekhez elsődleges szabványokat és karbantartott hivatalos dokumentációt használok. Frameworkök, böngészők és webes API-k idővel változhatnak, ezért implementálás előtt mindig ellenőrizd az aktuális dokumentációt is.
Kapcsolódó ByBence Academy