0

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

enter image description here

每个部分都有修改(修改完成,而部分仍与以前的版本互换;换句话说:两个部分 - 相同的ID - 用不同的版本是一对单更换)。

我们需要的是修订历史。达到此目的的最佳方法是什么?

  • tbom的组合主键是正确的吗?
  • 每次我们创建一个新版本时,我们是否需要将上一版本中的所有条目(在tbom中)复制到新版本的条目中?
  • 当一个子零件发生变化时,是否所有的父零件都必须更新他们的BOM和/或修订版?

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

任何帮助,非常感谢!

回答

0

我可以为您的情况提供以下设计。

tbom table

revision_history table

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

  • 您不必在每次修订时都存储(或克隆)parentpart_id和subpart_id以获得 。这将允许您通过删除不必要的信息来减少表格的大小 。
  • 您可以存储每个项目的无限数量修订记录。
  • 您可以通过连接外键来设置更高效的结构。
  • 您可以将其他历史明细字段添加到新表中,例如 revision_purpose,recorded_issues等。或者,您可以在新表之后创建 以存储修订的详细信息。

revision_history_detail table

希望它可以帮助

+0

谢谢您的回答。两个备注:1)'subpart_id'也是一个外键(来自tpart)。 2)我看不到'revision_history'如何使用'tbom_id'。 'tbom'中的每个id都标识其父部件需要的数量。对于属于父项目的每个子项,“revision_history”中有一个项目? 'tbom.date'和'revision_history.revision_date'有什么关系? – user729103

+0

(X)通过从tbom表读取tbom_id到revision_history是必要的。 (X)如果tbom中的日期值是修订日期,当然它是不必要的。如果是这样,它应该从tbom中删除。 – aog