0

我是数据库设计的新手,我正在从事一个需要使用单个实体(药物)的项目,该实体可能与任意数量的患者相关联,并且每个患者可能有不同的剂量。对于这种情况,布置表格的最佳方法是什么。我可以使用一张表,只存储每个单独的药物和剂量,并将其与独特的患者联系起来。但这会让我在药物表中出现重复的条目(相同的药物,只是剂量不同)。

我想要的是每个药物名称都有一个条目,并让每个患者对该特定药物都有一个独特的剂量。当然,单个患者也可以使用许多不同的药物,因此我必须能够为不同患者的每种药物提供独特的剂量。

我使用实体框架模型第一种方法。我是否会使用单个表 T_Patient_Medication 并使用两个表 ID 中的每一个作为主键组合,然后对该组合使用剂量字段?如果是这样,我将如何创建关联以将此表与其他两个表联系起来。有什么建议么?

4

1 回答 1

1

在我的头顶上:

- 药物表(MedicineId、MedicineName 等)。

- 患者表(PatientId、PatientName 等)

- 患者药物表(MedicineId、PatientId、剂量、日期、注释等)。

换句话说,药物表包含每个唯一药物的行,患者包含每个唯一患者的一行。

患者-药物表是这两件事相遇的地方:它包含一个患者 ID、一个药物 ID,然后是该患者获得该药物的任何其他独特信息(即医生姓名、剂量、开始日期等)。就我个人而言,我会让患者药物表中的每一行也有自己的唯一 ID,与患者 ID 和药物 ID 的组合分开(当同一个患者在不同时间重新服用同一种药物时,你会怎么做,如果您的主键是 Patientid+Medicineid)。在我看来,每条记录都应该有自己唯一的 id。

表之间将有外键来强制这种关系:即您不能在患者-药物表中添加一行,除非患者表中存在患者ID,并且药物表中存在药物;同样重要的是,防止您从其他表中存在依赖记录的表中删除行。如果您花时间设置所有这些外键(关系),在 EF 中导航相关记录将变得轻而易举。

毫无疑问,它比这更复杂,但这是关系表的基本思想。

于 2013-05-12T01:59:54.240 回答