对于我们的自定义库存管理系统,我们在tpart表中定义机器零件和组装的产品。要定义物料清单,我们有一个tbom表。



每个部件都有一个修订版(已进行更改,并且该部件仍可与先前的修订版互换;换句话说:具有相同修订版的两个部件-相同的ID-可以一对一地替换)。

我们需要的是修订历史记录。实现此目标的最佳方法是什么?


tbom中的复合主键是否正确?
每次创建新修订时,是否都需要将前一个修订中的所有条目(在tbom中)复制到新修订的条目中?
当子部件更改时,所有父部件是否都必须更新其BOM和/或修订版?


还是有一个单独的trevision表更好的做法?

任何帮助是极大的赞赏!

最佳答案

我可以为您的案例提供以下设计。





通过添加新的修订历史记录表,您可以获得以下好处。


您不必存储(或克隆)parentpart_id和subpart_id用于
每次修订。这将使您减少表的大小
消除不必要的信息。
您可以为每个物料清单存储无限数量的修订记录。
您可以通过加入外键来建立更有效的结构。
您可以将其他历史记录详细信息字段添加到新表,例如
version_purpose,recorded_issues等。您也可以创建
跟随新表存储修订的详细信息。




希望能帮助到你

关于mysql - Material list 和版本控制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19001144/

10-11 09:33