Database design 我如何为这个ERD建模?

Database design 我如何为这个ERD建模?,database-design,Database Design,作业: 我的课本上有一个作业,但直到下节课我才有答案。他们给了我一个商业规则的故事,我必须创建一个完整的ERD。我已经找到了以下关系 正如你所看到的,一个病人住在一个或多个房间里,一个房间里有0个或更多的病人 业务规则: 护士必须跟踪患者居住的房间以及患者以前去过的房间。患者可以移动房间。 问题: 由于存在n:m关系,我有点困惑,当中间表(或子表/派生表)起作用时,我必须使用什么基数。有人能解释一下我在下面的图表中必须使用什么符号(乌鸦脚符号)吗?为什么 N.B.我添加了中间表,并根据业务规

作业:

我的课本上有一个作业,但直到下节课我才有答案。他们给了我一个商业规则的故事,我必须创建一个完整的ERD。我已经找到了以下关系

正如你所看到的,一个病人住在一个或多个房间里,一个房间里有0个或更多的病人

业务规则:

护士必须跟踪患者居住的房间以及患者以前去过的房间。患者可以移动房间。

问题:

由于存在
n:m
关系,我有点困惑,当中间表(或子表/派生表)起作用时,我必须使用什么基数。有人能解释一下我在下面的图表中必须使用什么符号(乌鸦脚符号)吗?为什么

N.B.我添加了中间表,并根据业务规则添加了到达和离开日期

编辑:
上图是错误的,房间代码不是主键,因为患者只能同时居住在一个房间。

您的图表应该是这样的(马丁符号)

用于解析多对多关系的交集表将始终具有乌鸦脚,因为交集表包含逻辑M:N关系中的表的外键

您可以这样想:从每个表中,在交集表中“向下”/“沿着”关系,并使用M:N关系的逻辑基数查看它。例如,房间“看到”许多患者(随着时间的推移,如果不是私人房间,则一次看到),因此房间/地点关系远端的基数很多。你可以用同样的方法来看待这种关系,以确定可选性。房间可以是空的,因此位置/房间关系的基数为1到0或更多


对病人来说有点复杂。您是否有未入院患者的病历?一旦他们入院,他们可以在不同的时间呆在不同的房间里,这样一来,患者也可以享受一对零或更多的待遇。另一方面,如果患者只存在于入住房间的环境中,那么这将是一对一或多,但对我来说,这听起来不像是一个实际/现实世界的商业规则。

嗨,Joel,非常感谢您的帮助。如果我们假装病人可以不待在房间里而住院,我的第一张图表和你的图表实际上意味着相同的事情,只是你的图表稍微详细一点。你会说他们都是ERD的吗?或者你能单独提到他们吗?如果是,你会给他们起什么名字?此外,我注意到,在引入中间子表时,关系保持完全相同,只是父表(患者和房间)附近有一个
|
(1)符号。
n:n
关系总是这样吗?@user1534664-两个图都是ERD。它们使用的图形约定略有不同,但最重要的区别是,您的图形约定可能被称为概念性的,因为它关注实体类型,并在非常高的级别上表示关系。我的ERD可能被称为逻辑的,因为它在概念层次上进行了深入研究,以显示概念是如何表示的。当您将交集表显示为M:N的实现时,它将始终*具有两个1:M关系,指向M:N关系中的实体。(*=总是一个太强的词。)我认为当你有一个单一的
时,它意味着你有一个基数和一个可选性。在马丁图形惯例中,
意味着一,而
|O
意味着零或一。有时,一个是由两行表示的:
|
,但我只在教科书中看到过,在实践中没有看到。有关不同的图形约定,请参见此处: