Проект для начинающих: база данных школьной библиотеки
Соберите вместе всё, что вы узнали, и постройте настоящую работающую базу данных библиотеки.
- спланировать небольшую базу из таблиц books, students и loans,
- писать
CREATE TABLEс первичным ключом и внешними ключами, - добавлять строки через
INSERT, - отвечать на реальные вопросы с помощью
SELECT,WHERE,ORDER BY,JOINиGROUP BY.
1. План: три таблицы
Школьная библиотека следит за тремя видами вещей, поэтому мы возьмём три таблицы. Представьте каждую таблицу как один аккуратный список:
- books - по одной строке на каждую книгу библиотеки.
- students - по одной строке на каждого ученика, который может брать книги.
- loans - по одной строке каждый раз, когда ученик берёт книгу.
Почему три таблицы, а не одна большая? Потому что одна огромная таблица снова и снова повторяла бы одно и то же название книги и одно и то же имя ученика. Разделение данных хранит каждый факт один раз. Таблица loans - самая хитрая часть: вместо того чтобы копировать книгу и ученика целиком, каждая выдача хранит только book_id и student_id. Эти маленькие числа указывают на настоящие строки. Такой указатель называется внешним ключом.
Аналогия: представьте полку с книгами и класс учеников. Выдача - это маленький стикер с надписью "книга номер 1 у ученика номер 3". Стикер не копирует всю книгу и всего ученика - он просто записывает их номера. Именно это и делает внешний ключ.