我该如何建模这个ERD?

时间:2014-09-07 15:56:40

标签: database-design

作业:

我的教科书中有一项作业,但在课程的下一课之前,我无法获得答案。他们给了我一个关于业务规则的故事,我必须创建一个完整的ERD。我已经找到了以下关系。

ERD

您可以看到患者住在一个或多个房间,并且在一个房间内有0个或更多患者。

业务规则:

The nurses have to track in what room the patient resides and in what rooms the patient has been before. It's possible for a patient to move rooms.

问题:

由于存在n:m关系,我对在中间表(或子/派生表)发挥作用时我必须使用的基数感到困惑。 。有人可以解释我将在下图中使用哪些符号(乌鸦脚符号)? 为什么

ERD2

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

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

1 个答案:

答案 0 :(得分:1)

你的图表看起来像这样(马丁表示法)

ERD

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

你可以这样想:从每张桌子上看,"向下" /"沿"在交集表处的关系,并用M:N关系的逻辑基数来看它。例如,ROOM"看到"许多患者(随着时间的推移,如果不是私人房间,一次),所以ROOM / PLACE关系远端的基数是很多。您可以以相同的方式查看此关系以确定可选性。房间可以是空的,因此PLACE / ROOM关系的基数是一到零或更多

对于患者而言,这有点复杂。对于未被录取的患者,您是否有患者记录?一旦他们被录取,他们可以在不同的时间进入不同的房间,这样就可以使患者一到零或更多。另一方面,如果患者仅在入住房间的情况下存在,那么它将是一个一个或更多,但这听起来不像是实际的/真实的世界商业规则给我。