ER模型中的关系

时间:2017-03-20 00:57:03

标签: entity-relationship entity-relationship-model

我正在学习有关数据库系统的ER建模。我的问题是,有一个名为books的实体,名为user的enitity,我想在属性发布日期创建用户和书籍之间的借用关系。我按照描述对其进行了建模,但有人指出借用不能成为一种关系,因为同一个用户可以借两次书。任何人都可以解释这是什么,因为我使用问题数据作为属性,因此借用关系中的记录不会发生冲突,因为我将使用PK作为用户ID,bookid和发布日期。我该如何准确地对此进行建模?我对此感到有些困惑。

2 个答案:

答案 0 :(得分:1)

在ER模型中,实体关系由单个实体集的属性组成,其中PK仅标识一个实体集。关系关系具有表示两个或更多实体集的复合PK。

您的问题使用表示两个实体集(useridbookid)和值集(issue date)的复合PK。严格地说,它既不是实体关系,也不是关系关系。它是关系关系(两个实体键)和弱实体集(issue date函数类似于弱键的组合)。如果我们想要有创意,我们可能会称之为弱关系。

如果我被迫为此绘制ER图,我可能会这样呈现:

Borrows ER diagram

ER模型不是一个完整的逻辑模型(与关系模型不同),并且有些情况处理得不好或根本没有。这是其中一种情况。

答案 1 :(得分:0)

根据说明,用户图书是实体。

一个用户可以借用一本书的实例。 同样,一个用户可以借用多个图书实例,无论它是否相同 实例或各种实例。

因此,用户和图书之间的每笔交易都有发行日期。 用户和书籍都没有发行日期。

此处,用户图书之间的关系为多对多

Bridge 交易。我们可以根据您的兴趣将其命名为Borrow。

现在,用户有一对多的交易。 每本书都有一对多的交易。

每笔交易都是用户和图书的组合。

注意:由于每个用户可以在同一天多次拥有同一本书。因此,我们可以拥有user_id,book_id和Issue_timestamp的复合主键,因为在同一组合中发行日期可能存在冗余。