【发布时间】:2014-01-10 16:11:59
【问题描述】:
我有一个正在尝试规范化的架构:
Component
( component_id
, component_number
, component_revision
, ...
)
Component_lot
( component_lot_id
, component_lot_number
, component_number
, component_revision
, ...
)
Component_supplier
( component_supplier_id
, component_supplier_name
, component_number
)
理想情况下,我想去掉component_lot 和component_supplier 表中的component_number,以及component_lot 表中的component_revision,只使用component_id。
问题是当组件修订版发生变化时,我在组件表中有多个相同组件号的条目,我必须找到一个好的方法来确定哪个修订版是活动的(不是简单的1、2 , 3 个我可以排序的编号系统,并且可能存在新修订但尚未激活)。此外,如果我创建一个组件的新修订版,它会获得一个新 id,现在我必须在 component_supplier 中为该组件的新修订版建立供应商。
我考虑过在组件中创建一个 isActive 字段,但这似乎不是解决问题的有效方法。我还考虑过将 component_number 保留为 component_supplier 中的 fk,但在某些情况下组件编号可能会更改(很少见,但可能)。
任何建议或文章链接将不胜感激。
【问题讨论】:
标签: sql database-design database-schema