表格作为ER图中的关系

时间:2010-06-14 19:52:43

标签: database database-design

假设我有以下表格(**bold** - 主键,*italics* - 外键):

patient(**patient_id**, name)
disease(**disease_id**, name)
patient_disease(**p_d_id**, *patient_id*, *disease,_id* )

我想为此绘制ER图。我的想法是制作两个实体,一个用于患者,一个用于疾病,然后在它们之间建立n对n关系,以p_d_id为其属性。那应该是怎么回事?

2 个答案:

答案 0 :(得分:0)

是的,这是正确的。在ER图中,我们模拟逻辑关系,而不是与多对多关系的“连接”表的最终物理关系。

这种情况下的逻辑关系是多个患者可能患有多种疾病,反之亦然。

答案 1 :(得分:0)

你的实体和n2n关系没问题,但是不需要p_d_id键,如果那3是patient_disease的唯一字段,那么(patient_id,disease_id)就足够作为它的主键。
将p_d_id作为主键可以让你拥有许多具有相同patient_id和disease_id的行,这意味着什么?为了说明患者患有疾病,仅用一行就足够了 如果,在变化中,您有另一个字段,例如日期,表示患者患有疾病的日期,那么拥有自己的ID是有意义的,因为患者可能患有相同的疾病两次,不同的日期,但同样,在这种情况下,日期可能是主要ID的一部分。

注意:在关系理论中,“关系”和“关系”是不同的概念,在你的问题中,你写的是“关系”,但这确实是一种“关系”。 “关系”只是一个元组,一个实体的实例,数据库中的内容将是一行。