Введение в связывание моделей в Django
В реальных проектах данные редко лежат в одной таблице. Пост связан с миниатюрой, категория - с постами, статья - с тегами. Такие связи нужно уметь описывать в моделях и удобно читать в коде.
Давайте посмотрим на простой пример. Пусть у нас есть таблица постов:
posts
- id
- title
И отдельная таблица с миниатюрами:
thumbnails
- id
- path
- alt
- post_id
Поле post_id хранит
id поста. Такое поле
называют внешним ключом
(foreign key). Через него
база понимает, какая миниатюра
принадлежит какому посту.
Django поверх внешнего ключа дает
поля связей в моделях. Тогда можно
получить связанный объект без
ручных JOIN в SQL - например,
через post.thumbnail
или post.category.
В следующих уроках мы разберем основные виды связей: один к одному, многие к одному и многие ко многим, а также научимся получать связанные данные с обеих сторон.
Расскажите, зачем связывают модели между собой.
Расскажите, что такое внешний ключ и какую роль он играет в связывании таблиц.