假设我有以下表格(**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为其属性。那应该是怎么回事?
答案 0 :(得分:0)
这种情况下的逻辑关系是多个患者可能患有多种疾病,反之亦然。
答案 1 :(得分:0)
你的实体和n2n关系没问题,但是不需要p_d_id键,如果那3是patient_disease
的唯一字段,那么(patient_id,disease_id)就足够作为它的主键。
将p_d_id作为主键可以让你拥有许多具有相同patient_id和disease_id的行,这意味着什么?为了说明患者患有疾病,仅用一行就足够了
如果,在变化中,您有另一个字段,例如日期,表示患者患有疾病的日期,那么拥有自己的ID是有意义的,因为患者可能患有相同的疾病两次,不同的日期,但同样,在这种情况下,日期可能是主要ID的一部分。