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