2

我正在尝试为医院 Oracle 数据库系统实现实体关系。

如果我应该将下表分开或将它们合并为 1,我会感到很困惑。

 - Supply

ItemNo (PK) , Name, ItemDescription, QuantityInStock, BackOrderLevel, CostPerUnit

 - PharmaceuticalSupply

DrugNo (PK) , Dosage, MethodOfAdmin 

基本上在我的 ERD 中,我将 PharmaceuticalSupply 指向 Supply 作为一个子集,它继承了该属性但也具有其他属性。我这样做有错吗?

4

2 回答 2

1

最终,这是一个没有正确或错误答案的设计决策,但将它们分开可能会有所帮助。例如,有许多类型的用品不是药品。如果合并表格,则可以输入没有实际意义的数据。例如,您不能使用一定剂量的绷带。单独的表格清楚地表明剂量仅适用于药物。

请注意,关于如何管理 PharmaceuticalSupply 中的 PK 和 FK 存在一些变化。它可以同时具有 ItemNo 和 DrugNo,其中 ItemNo 是外键。在这种情况下,任何一个都可以是主键,但如果 DrugNo 是主键,那么 ItemNo 可能需要是唯一索引。但是,除非由于某些自定义格式而需要 DrugNo,否则将 ItemNo 简单地用作 PK 和 FK 并完全消除 DrugNo 可能会很好。这导致了关系数据库世界喜欢提及的“专业化”。

于 2013-11-06T19:11:55.453 回答
0

这取决于你的人口。它是一个子集,为了减少冗余,向 Supply 添加一个外键。这样你就可以建立一个列出所有数据的连接。

我仍然会引入 DrugNo 索引键。一个项目编号可以在 PharmaceuticalSupply 表中出现多次吗?如果你这样做,那么你肯定需要 DrugNo 键。

  • 药品供应

DrugNo (PK) , ItemNo (FK), Dosage, MethodOfAdmin

于 2013-11-06T19:09:02.827 回答