针对患者和疾病的数据库设计

Muh*_*Ali 2 sql database database-design sql-server-2008-r2

我正在创建一个应用程序(桌面)来存储和检索患者的病历以及疾病.由于患者和疾病有很多关系,所以我创造了三张桌子; 患者,疾病和一个是结点表.由于一名患者可以在一段时间内在一种疾病中注册多次,因此"患者"表包含患者"参考号"和"注册日期"的复合主键.表'DISEASES'仅包含'name'作为主键.

现在我对连接表的设计有点困惑.它包含'PATIENTS'表的复合主键和'DISEASES'表的主键作为外键.

我应该在联结表中创建所有这些外键的复合主键,还是创建另一个主键或不同的主键?

任何帮助将不胜感激.

Ada*_*son 5

看起来设计似乎并不合适.如果患者的参考编号唯一地标识患者,那么应该是主要密钥.如果同一患者可以多次注册给定的疾病,那么这应该是联合表中的关键部分,而不是患者表中的关键部分.

联结表中的主键应该是唯一标识关联的关键字,在这种情况下应该是由患者表中的密钥,疾病表和注册日期组成的复合密钥.