Ответ
Foreign key (внешний ключ) в реляционных базах данных обеспечивает ссылочную целостность между таблицами. Он связывает поле в одной таблице с первичным ключом (primary key) другой таблицы, гарантируя, что данные остаются согласованными.
Основные функции:
- Поддержка связей между таблицами (один-ко-многим, многие-ко-многим)
- Запрет операций, нарушающих целостность (например, удаление записи, на которую есть ссылки)
- Каскадное обновление/удаление (если настроено)
Пример в SQL:
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
В Go при работе с ORM (например, GORM):
type Customer struct {
ID uint
Name string
}
type Order struct {
ID uint
CustomerID uint
Customer Customer `gorm:"foreignKey:CustomerID"`
}