我是数据库设计的新手,我正在开展一个项目,该项目需要使用可以与任意数量的患者相关联的单个实体(药物),并且每个患者可以具有不同的剂量。为这种情况布置表格的最佳方法是什么。我可以使用一张桌子,只需储存每种药物和剂量,并将其与独特的患者联系起来。但是这会给我药物表中的重复条目(相同的药物只有不同的剂量)。
我想要的是每个药物名称都有一个条目,并且每个患者都有针对该特定药物的独特剂量。当然,单个患者也可能有许多不同的药物,因此我必须能够为不同患者的每种药物配备独特的剂量。
我使用实体框架模型的第一种方法。我是否会使用单个表T_Patient_Medication并使用两个表ID中的每一个作为主键组合,然后对该组合使用剂量字段?如果是这样,我将如何创建关联以将此表与其他两个表绑定。有什么建议吗?
答案 0 :(得分:1)
脱离我的头顶:
- 药物表(MedicineId,MedicineName等)。
- 患者表(PatientId,PatientName等)
- 患者 - 药物表(MedicineId,PatientId,Dosage,date,notes等)。
换句话说,药物表包含每个独特药物的行,患者每个独特患者包含一行。
患者 - 药物表是这两件事物相遇的地方:它包含患者ID,药物,然后是该患者获得该药物的任何其他独特之处(即博士名称,剂量,开始日期等)。就个人而言,我会让患者医疗表中的每一行都有自己的独特ID,与患者和药物ID的组合分开(当同一患者在不同时间使用同一种药物时,您打算做什么,如果您的主键是Patientid + Medicineid)。每个记录都应该以我的思维方式拥有自己独特的ID。
表之间会有外键来强制执行这种关系:即,除非患者表中存在药物,并且药物表中存在药物,否则您不能在患者药物表中添加一行;并且同样重要的是阻止您从其他表中存在依赖记录的表中删除行。如果您花时间设置所有这些外键(关系),EF中的导航相关记录将是轻而易举的。
毫无疑问,这比这更复杂,但这是关系表的基本概念。