Sobes.tech
Junior — Middle

Čo znamená pojem ForeignKey v kontexte databáz a ako sa používa na prepojenie tabuliek?

sobes.tech AI

Odpoveď od AI

V databázach označuje termín ForeignKey (cudzí kľúč) pole alebo sadu polí v jednej tabuľke, ktoré odkazujú na primárny kľúč inej tabuľky. Je to mechanizmus na vytvorenie a zabezpečenie vzťahu medzi tabuľkami, umožňujúci zachovanie integrity údajov.

Napríklad, ak existuje tabuľka Orders s poľom CustomerID, ktoré je cudzím kľúčom odkazujúcim na pole ID v tabuľke Customers, potom je každý záznam v Orders spojený s konkrétnym zákazníkom z Customers.

Použitie ForeignKey umožňuje:

  • zabezpečiť referenčnú integritu (nie je možné pridať objednávku s neexistujúcim zákazníkom).
  • uľahčiť spájanie údajov z prepojených tabuliek.

V Pythone, napríklad s použitím ORM Django, je cudzí kľúč definovaný takto:

from django.db import models

class Customer(models.Model):
    name = models.CharField(max_length=100)

class Order(models.Model):
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
    order_date = models.DateField()

Tu je customer cudzí kľúč, ktorý spája objednávku s zákazníkom.