Database ER图中作为关系的表

Database ER图中作为关系的表,database,database-design,Database,Database Design,假设我有以下表格(**bold**-主键,*斜体*-外键): 我想为这个画一个ER图。我的想法是创建两个实体,一个用于患者,一个用于疾病,然后在它们之间创建一个n对n关系,p_d_id作为其属性。应该是这样的吗?是的,没错。在ER图中,我们用多对多关系的“连接”表来模拟逻辑关系,而不是最终的物理关系 这种情况下的逻辑关系是,多个患者可以有多种疾病,反之亦然。您的实体和n2n关系正常,但不需要p\u d\u id键,如果这3是患者疾病的唯一字段,那么(患者id,疾病id)作为主键就足够了。 将p_

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


我想为这个画一个ER图。我的想法是创建两个实体,一个用于患者,一个用于疾病,然后在它们之间创建一个n对n关系,p_d_id作为其属性。应该是这样的吗?

是的,没错。在ER图中,我们用多对多关系的“连接”表来模拟逻辑关系,而不是最终的物理关系


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

您的实体和n2n关系正常,但不需要p\u d\u id键,如果这3是
患者疾病
的唯一字段,那么(患者id,疾病id)作为主键就足够了。
将p_d_id作为主键将使您有许多行具有相同的患者id和疾病id,这意味着什么?说一个病人有病,一排就够了。
如果在更改中,您有另一个字段,例如date,表示患者患病的日期,那么有一个自己的id是有意义的,因为患者可以在不同的日期患有相同的疾病两次,但在这种情况下,日期可以是主id的一部分

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

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