Что такое ForeignKey в реляционной БД
Python
Middle
Без компании
Что такое ForeignKey в реляционной БД
Ответы
ForeignKey (внешний ключ) — это ограничение в реляционной БД, которое обеспечивает ссылочную целостность между таблицами. Он связывает поле одной таблицы с первичным ключом (PrimaryKey) другой таблицы, создавая отношение "один-ко-многим" или "один-к-одному".
**Пример в Django ORM:**
```
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey(Author, on_delete=models.CASCADE) # Связь с автором
```
**Особенности:**
- Гарантирует, что значение в поле соответствует существующей записи в связанной таблице.
- `on_delete` определяет поведение при удалении связанной записи (CASCADE, PROTECT, SET_NULL и др.).
- Ускоряет JOIN-запросы за счёт индексации.