0

关于 ER/EER 图的快速问题。

我已经制作了这个实体关系图,但有人告诉我,一个朋友有问题。有什么问题吗?

ER图是图书馆管理系统的设计,会员一次可以借5本书。系统的其余功能是正常库的功能。

图书馆管理系统 EER

4

3 回答 3

0

您给定的上下文对我来说是不完整的。我没有看到您的问题/情况的完整描述,因此我将根据假设以及我一生中的经历来回答。那么让我们看看...


tino用户质疑标题和卷两个实体的存在,这很重要。让我解释一下,这将消除这个错误。以前(前一段时间)我们有视频租赁店(我不知道这是否是你住的地方的正确名称,英语不是我的母语)。记住?我们过去常去那里租 VHS 录像带在家观看。

我们租的不是电影,而是更多的拷贝/媒体。一部电影将始终具有相同的演员、导演、片名等,但副本可能具有不同的属性/属性,例如媒体的制作年份、可用语言、到期年份等。所以我们显然有两种不同的东西。

但尽管如此,我们必须考虑是否需要创建两个实体来进行持久化。我们必须记住是否需要保留这些信息。如果副本/媒体没有属性,则它的实体不应该存在,用户真正租用的将是电影标题。

在你的情况下,我相信音量和标题之间的关系确实表达了这种差异。

先说一下馆员和title的关系。图书馆员管理什么?它是否管理永不改变的抽象事物或图书馆中存在的物理对象的标题?:)


最后,让我们谈谈借用关系。当我们分解 1-N(或 N-1)个关系时,我们总是将主键从 1 侧传递到 N 侧,解决关系以形成实体关系图中的物理模型。

尽管这里的这种关系是 0-5,但要分解它,我们不会有完全的 0-5 关系。无论如何,我们都必须将主键从两侧传递到由这种关系形成的表中。因此,这里我们最初在 member 和 volume 之间建立了 NN 关系。

NN 关系允许实体之间的可选关系。这意味着我们可以在这里拥有零边基数。要限制可以租用的书籍数量,您需要使用 SQL 或数据库中的任何过程语言来实现限制/约束。在这种情况下,您可以实现一个插入前触发器。此触发器有责任验证此限制以允许或拒绝整个操作的完成。

明确一点,我并不是说你应该删除这个符号。你的概念模型应该表达它。但是当你分解时,你必须记住这一点。我认为你应该纠正它。

记住一条重要规则:具有属性/属性(attributes/properties)的关系只能存在于 NN 关系中。如果您必须将属性/属性放在 1-N(或 N-1)关系中,它们(属性/属性)将始终位于 N 侧。总之,关系中不存在 N-1(或 1-N)个与属性相关的关系。只有 NN 关系可以具有属性/属性。所以要小心这个。

任何问题或澄清,请评论,我会回答。

于 2016-05-31T19:08:57.810 回答
0

我认为没有理由区分会员和卡。Volume 和 Librarian 没有主键。他们应该是弱实体吗?这对 Librarian 来说没有意义,Volume 需要一个标识符来区分不同的副本。

于 2016-05-31T19:16:08.040 回答
0

我不明白图书管理员和卡片之间关系的用途,也不明白为什么这些书被分成两个实体。

我会做3个实体:

-成员

-卡片

-书

每个会员都有一张卡,每张卡都属于一个会员;每个会员可以拿很多书,每本书可以被很多会员拿,

member 和 book 之间的关系在逻辑模式中创建另一个表:loans。在插入新贷款之前,您可以检查该成员是否已经有 5 笔活动贷款(通过检查贷款表中的活动属性)。

于 2016-05-31T17:14:28.787 回答