不同表

时间:2016-08-10 14:36:38

标签: database-design unique-constraint

我需要对数据库设计进行一些输入。我很忙。

总结我想要建模的内容(请参阅database diagram)。

选项1:

  • File中的条目可能会应用一个或多个费用元素。
  • 成本要素具有描述,度量(货币或%)分配(按质量,按量等)和值(数字)。
  • 必须对FileIDCostDescriptionID的组合强制执行多列唯一性。
  • Pro :可以根据上述要求创建唯一索引来强制执行数据完整性。
  • Con :无法重复使用成本要素组合 - 数据重复。

选项2:

  • 为了减少条目的重复,CostElement2已分为三个表:CostDefaultCostInputCostElement
  • 专家:CostInput允许重复使用CostDescriptionIDCostMeasureIDCostAllocationID的组合。
  • 专家CostInput允许重复使用CostElementIDElementValue组合。
  • Con :无法对FileIDCostDescriptionID的组合强制执行多列唯一约束。

是否有更好的设计决策可以让我充分利用这两个世界?

非常感谢任何协助。

非常感谢!

1 个答案:

答案 0 :(得分:0)

我建议坚持使用选项1,单表。在这种情况下,我不会认为列组合需要进一步规范化。

您可能只想在.FileID按顺序创建复合主键。

我对命名的唯一评论是,我对名为" CostElementID"的表感到不舒服。除此之外,你似乎很好。