01
Схема до ввода
| Поле | Тип | Правило |
|---|---|---|
| ID книги | Текст | Первичный ключ, уникален. |
| Название | Текст | Обязательное поле. |
| Год издания | Число | В разумном диапазоне. |
| Выдана | Да/нет | Не хранит произвольный текст. |
02
Ключ — не имя
ПочемуНазвание «Роботы рядом» может повториться, а ID
B-103 — нет. Первичный ключ не должен зависеть от опечатки, смены названия или персональных данных.Определи минимальный набор полей, который нужен для вопроса к базе. Не собирай персональные данные «на всякий случай».
03
Как выбрать ключ и тип поля
| Решение | Хороший выбор | Проблемный выбор |
|---|---|---|
| Первичный ключ | стабильный уникальный ID | ФИО, название или изменяемый телефон |
| Дата | тип даты или ISO-значение | произвольная строка «завтра» |
| Категория | справочник или проверяемое множество | десятки вариантов одного написания |
| Количество | целое с ограничением ≥ 0 | строка с единицей внутри |
Составной ключ нужен, если уникальность определяется комбинацией полей. Искусственный ID не отменяет дополнительные ограничения уникальности предметной области.