01
Одна сущность — одна таблица
В библиотеке есть книги, читатели и выдачи. Нельзя надёжно хранить список читателей внутри поля книги: у выдачи свои дата, срок и статус. Поэтому создают отдельную таблицу «Выдачи», где внешний ключ книги и внешний ключ читателя указывают на существующие записи.
| Таблица | Ключ | Связь |
|---|---|---|
| Книги | book_id | Одна книга — много выдач во времени. |
| Читатели | reader_id | Один читатель — много выдач. |
| Выдачи | loan_id | Хранит book_id и reader_id как внешние ключи. |
02
Целостность
- Не создавай «висячую» ссылку. Выдача не может ссылаться на отсутствующую книгу.
- Не дублируй факт. Имя читателя хранится в «Читателях», а не в каждой выдаче.
- Определи правило удаления. Сначала проверь связанные выдачи, потом удаляй запись.