【发布时间】:2014-06-17 00:32:05
【问题描述】:
我正在尝试构建一个包含多个表的数据库以进行研究/研究。这是我第一次设计这种规模的数据库;数据库每天增长 100-200 条记录,到目前为止,我拥有自 2010 年以来的数据。在所有数据中,通用序列号、产品名称和药物(处方)的强度有点困扰我。这是我到目前为止所做的: Generic Seq 编号对于药物强度(产品名称)是唯一的。所以,我有一个包含 id、通用序列号和强度的表。另一个表用于 prod_id 和产品名称。每个Generic seq号可以有一个或多个产品名称,每个产品名称可以根据强度有不同的generic seq号。因此,我将其设置为多对多关系。我为此关系创建了另一个表,其中包含 rx_id、drug_id 和 prod_id。由于可能为许多患者开具同一种药物的处方,因此 drug_id 和 prod_id 可能在 rx_table 中重复多次。
我的第一个问题是,这种设计合适吗? 我应该如何将数据插入 rx_table?即使 drug_id 和 prod_id 已经存在于 rx_table 中,我是否应该每次都为新数据创建新记录,或者我应该查找 drug_id 和 prod_id 序列存在的 rx_id 并将 rx_id 插入到另一个主表(未显示)中包含其他数据。 还是这个问题太模糊了?
感谢您的帮助。
【问题讨论】:
-
你的方法很好。我猜你的 rx_table 是代理和产品名称的组合,所以它是你作为“药物”购买的。基本上,您的患者表和 rx_table 之间存在另一个 m:n 关系,您可以在其中管理给患者的某种药物(通用序列号/产品名称)的处方。
-
@MartinK。谢谢你。这很有帮助。因此,为了确认,继续向 rx_table 添加数据并创建新的 rx_id,即使 prod_id 和 drug_id 组合存在,对吧?能否请您回复该消息,以便我将其标记为答案?
标签: sql many-to-many