EN - FR - DE - ES - IT - PT -

LexiconDream

🔗 Cizí klíč

Pole propojující záznamy v jedné tabulce s jinou tabulkou.

Cizí klíč

Cizí klíč propojuje záznamy v jedné tabulce se záznamy v jiné. Tabulka objednávek má pole customer_id. Toto pole je cizí klíč odkazující na primární klíč tabulky zákazníků. Propojení zajišťuje, že každá objednávka patří skutečnému zákazníkovi. Bez něj by objednávky mohly odkazovat na neexistující zákazníky. Databáze vynucuje tento vztah.

Cizí klíče dělají více než jen vztahy v dokumentech. Vynucují referenční integritu. Pokud se pokusíte vložit objednávku s customer_id, která v tabulce zákazníků neexistuje, databáze ji odmítne. Pokud se pokusíte smazat zákazníka, který má objednávky, databáze buď smazání zablokuje, nebo jej kaskádovitě provede v závislosti na pravidle. Toto vynucení zabraňuje osiřelým záznamům a nekonzistentním datům. Cizí klíče také pomáhají s výkonem dotazů. Databáze může pomocí vztahu optimalizovat spojení. Ne všechny databáze vynucují cizí klíče. Některé NoSQL databáze ponechávají referenční integritu na aplikaci. To dává vývojářům větší flexibilitu, ale také větší odpovědnost. Aplikace musí zajistit, aby byly odkazy platné. Pokud se to nezdaří, data se stanou nekonzistentními. Cizí klíče představují omezení. Omezení jsou nepraktická, dokud nezabrání katastrofě.

Pravidla pro cizí klíče

Cizí klíč je odkaz a záruka. Propojení propojuje tabulky. Záruka udržuje jejich konzistenci.

Comments

No comments yet. Be the first to share a thought.

Leave a comment