Отношения в модели ER

Я изучаю моделирование ER о системах баз данных. Моя проблема в том, что существует сущность с именем books, enitity с именем user, и я хочу создать отношение заимствований между пользователем и книгой с датой выпуска атрибута. Я смоделировал это, как описано, но было отмечено, что заимствования не могут быть отношениями, потому что один и тот же пользователь может одолжить книгу дважды. Кто-нибудь может мне объяснить, что это такое, поскольку я использую данные о проблемах в качестве атрибута, чтобы записи в отношении заимствований не сталкивались, так как я буду использовать PK в качестве идентификатора пользователя,bookid и даты выпуска. Как я могу смоделировать это точно? Я немного запутался в этом.

2 ответа

В модели ER отношения сущностей состоят из атрибутов одного набора сущностей, в котором PK идентифицирует только один набор сущностей. Отношения отношений имеют составной PK, который представляет два или более наборов сущностей.

Ваш вопрос использует составной ПК, который представляет два набора сущностей (userid а также bookid) и набор значений (issue date). Строго говоря, это ни отношение сущности, ни отношение отношения. Это комбинация отношения отношения (два ключа сущности) и набора слабых сущностей (issue date функции, аналогичные слабому ключу). Если мы хотим быть креативными, мы можем назвать это слабыми отношениями.

Если бы я был вынужден нарисовать диаграмму ER для этого, я мог бы представить это так:

Заимствует ER диаграмма

Модель ER не является полной логической моделью (в отличие от реляционной модели), и есть некоторые ситуации, которые не обрабатываются хорошо или вовсе. Это одна из тех ситуаций.

Согласно описанию, Пользователь и Книга являются сущностями.

Один пользователь может одолжить экземпляр книги. Аналогично, один пользователь может заимствовать несколько экземпляров книги, будь то один или несколько экземпляров.

Таким образом, каждая транзакция между пользователем и книгой имеет дату выпуска. Ни у пользователя, ни у книги нет даты выпуска.

Здесь отношения между Пользователем и Книгой являются Многими ко Многим.

Таблица Мост - этоТранзакция. Мы можем назвать это как Заем также в соответствии с вашими интересами.

Теперь у пользователя есть одна-много транзакций. Каждая книга имеет одну-много транзакций.

Каждая транзакция представляет собой комбинацию пользователя и книги.

Примечание. Поскольку каждый пользователь может иметь одну и ту же книгу несколько раз и в один и тот же день.Таким образом, у нас может быть составной первичный ключ user_id, book_id и Issue_timestamp, поскольку существует вероятность избыточности даты выпуска в той же комбинации.

Другие вопросы по тегам