Sobes.tech
Junior — Middle

Какво означава терминът ForeignKey в контекста на базите данни и как се използва за свързване на таблици?

sobes.tech AI

Отговор от AI

В базите данни терминът ForeignKey (външен ключ) обозначава поле или набор от полета в една таблица, които се отнасят към първичния ключ на друга таблица. Това е механизъм за установяване и осигуряване на връзката между таблиците, позволяващ поддържане на целостта на данните.

Например, ако има таблица Orders с поле CustomerID, което е външен ключ, сочещ към полето ID в таблицата Customers, тогава всеки запис в Orders е свързан с конкретен клиент от Customers.

Използването на ForeignKey позволява:

  • осигуряване на референтна цялост (не може да се добави поръчка с несъществуващ клиент).
  • улесняване на обединяването на данни от свързани таблици.

В Python, например с използване на ORM Django, външният ключ се дефинира така:

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()

Тук customer е външен ключ, който свързва поръчката с клиента.