我有一个正在尝试规范化的架构:
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,但在某些情况下组件编号可能会更改(很少见,但可能)。
任何建议或文章链接将不胜感激。