Консультация № 189950
27.10.2016, 18:10
0.00 руб.
1 1 0
Здравствуйте! У меня возникли сложности с таким вопросом:
Имеются атрибуты предметной области библиотека: шифр, автор, название, тематика, издательство, год издания, тираж, количество страниц, аннотация, билет, фамилия, место работы, должность, телефон, возраст, особые отметки, дата выдачи, срок возврата.
И нужно нормализовать. Можете сказать, правильно ли? Или еще можно что-нибудь выделить?
Спасибо.
Прикрепленные файлы:
30c78cfb18215deb6af1614a70e0efed0a842510.jpg

Обсуждение

давно
Посетитель
400894
9
20.01.2017, 14:22
общий
В данном вопросе сразу напрашиваются две основные сущности, которые взаимодействуют: книга и читатель.

К читателю относятся поля: билет (точнее, его номер, можно использовать как первичный ключ в таблице), фамилия, место работы, должность, телефон, возраст (вместо возраста лучше указать дату рождения).

В таблицу, описывающую книги, разумно включить несколько собственных полей и несколько ссылок на вспомогательные таблицы. Непосредственно в основную таблицу включаем: шифр, название, год издания, тираж, количество страниц, аннотация. В отдельные таблицы выносим: автора, тематику, издательство, так как каждый из этих параметров может объединять множество книг. Соответственно в таблицу книг включаются внешние ключи для связи с нужными записями в таблицах авторов, издательств и тематик.

Теперь возникает необходимость объединить книги с читателями. Делается это при помощи таблицы-связки: один внешний ключ связывает с нужной книгой, другой с нужным читателем. Также указываются дата выдачи и срок возврата, сюда же можно занести особые отметки.

Могу набросать пример (на PostgreSQL), если нужно.
Форма ответа