Собственно задача:
Для городской библиотеки Простоквашино необходимо спроектировать структуру базы данных для системы учета читателей. Система должна хранить информацию о читателях и взятых ими книгах, а также информацию обо всех книгах в целом.
Структуру базы описать в виде SQL-скрипта создания нужных таблиц и связей.
Информация о книге
* Название - текст
* Автор - текст
* Статус = [свободна, взята]
* Кем взята, если взята
* Когда взята, если взята - дата
* До какого числа, если взята - дата
Если книга имеется более чем в одном экземпляре, это необходимо отразить в базе.
Информация о читателе
* Имя - текст
* Фамилия - текст
* Служебная информация = [постоянный читатель, редкий читатель, читатель только читального зала]
Информация о взятых книгах
Какой документ был предъявлен при выдаче книги = [Усы, Лапы, Хвост]
Информация о документах
Усы:
* серия документа - 4 цифры, обязательно к заполнению
* номер документа - 6 цифр, обязательно к заполнению
* кем выдан - текст
* когда выдан - дата
Лапы:
* серия документа - набор из цифр и латинских букв длиной от 2 до 5 символов, необязательно к заполнению
* номер документа - набор из цифр и латинских букв длиной от 6 до 8 символов, обязательно к заполнению
* кем выдан - текст
Хвост:
* номер документа - набор из цифр и латинских букв длиной от 6 до 8 символов, обязательно к заполнению
* дата начала срока действия - дата
* дата окончания срока действия – дата
Попытался что-то написать, но сильно сомневаюсь в корректности. Особенно не понятна последняя часть с разными видами данных и условий для документов. Спасибо.
UPD.
Что получилось самостоятельно на данный момент:
CREATE TABLE books ( book_id int (10) AUTO_INCREMENT NOT NULL, book_name VARCHAR(255) NOT NULL, book_author VARCHAR (255) NOT NULL, book_status ENUM (‘Y’,’N’) NOT NULL default(Y), book_owner INT(11), book_take_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, book_return_date DATETIME NOT NULL, FOREIGN KEY (book_owner) REFERENCES users (user_id)))
UNION
CREATE TABLE users ( user_id int (10) AUTO_INCREMENT NOT NULL, user_firstname VARCHAR(255) NOT NULL, user_lastname VARCHAR (255) NOT NULL, user_info ENUM(‘regular_reader’, ’rare_reader’ , ’reading_room’) NOT NULL))
UNION
CREATE TABLE busy_book ( id int (10) AUTO_INCREMENT NOT NULL, bbook_id INT(11) NOT NULL, bbook_document VARCHAR (255) NOT NULL, user_info ENUM(‘regular_reader’, ’rare_reader’ , ’reading_room’) NOT NULL, FOREIGN KEY (bbook_id) REFERENCES books(book_id))
Дальше понял, что уже все не так :(