Дизайн базы данных библиотеки - PullRequest
0 голосов
/ 18 августа 2011

Привет, я пытаюсь создать базу данных библиотеки.Существа

  1. Книга
  2. Журнал
  3. DVD
  4. Участник
  5. Библиотекарь
  6. ...

    • Типы носителей могут быть заимствованы участниками. Должен ли я создать 3 разные таблицы
      ссуд для всех типов носителей или только одну таблицу ссуд.

    • если мы думаем, что медиа как объект, (книга, журнал и DVD наследуют
      медиа), как они могут быть выражены на диаграмме E & R.

    • Если все копии книгизаимствованная книга может быть зарезервирована. Я могу управлять ей программно (используя select count (*) from books)
      , но мне интересно, есть ли эффективный способ сделать это.

Ответы [ 3 ]

0 голосов
/ 18 августа 2011
  1. Вы можете использовать одну таблицу ссуд, которая содержит ссылку на другие таблицы.
  2. Эта ссылка http://www.csc.liv.ac.uk/~valli/Comp507/slides23.pdf будет полезна для вас. Есть образец.
  3. Вы можете создать таблицу книг, в которой есть столбец с именем total_quantity, и другую таблицу book_copies. Если книга заимствована, вы можете обновить book.total_quatity--.При кредитовании вы можете контролировать, равен ли book.total_quantity нулю или нет
0 голосов
/ 24 апреля 2012

Вам также следует подумать о добавлении новой сущности в будущем. Скажем, библиотека начнет кредитовать Kindles или iPad в будущем? Как бы вы разместили их в базе данных? Вам придется создавать новые таблицы для каждого нового объекта, что может быть дорогостоящим с точки зрения производительности базы данных.

0 голосов
/ 18 августа 2011
  1. У меня была бы одна таблица ссуд, которая ссылается на носитель (при условии 2), который намного легче получить итоговые данные и т. Д.

  2. По сути, что вы хотитеКод - это расширение, книга, журнал и DVD - все это медиа.Это моделируется наличием книги со ссылкой на СМИ.Чтобы сделать различие и ссылку на СМИ, вы можете добавить ссылку, которая ссылается на книгу, журнал и DVD.И enum («КНИГА», «ЖУРНАЛ», «DVD»), который сообщает, на что он ссылается.

  3. Вероятно, единственный момент, когда вы хотите показать эту информацию, это когда вы проверяете или информация о книге запрашивается каким-либо образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...