2012-12-13 25 views
0

我們有一個數據庫,用於記錄生產過程中某些產品的測試結果(記錄日期時間,產品序列號和測試結果)。如何做這個數據庫修改? (外鍵與否)

當產品被包裝時,我們每個盒子有多個產品,現在我們要記錄什麼產品在什麼盒子裏。

Box表格將添加ID和我們需要的任何其他列。 BoxID列將被添加到產品表中。然後我們有2個選擇:

1)使BoxID成爲鏈接到表格中ID列的外鍵。這有點難看,因爲我們必須創建一個特殊的包裝盒(ID爲0或其他),它將包含所有現有的產品,因爲我們沒有它們的信息,但是一些BoxID是必需的,因爲它是一個外鍵。

2)使BoxID爲空並且不要使其成爲外鍵。 BoxID的現有產品將爲NULL,這是正確的,因爲我們沒有這些信息,但它有點難看,因爲它沒有強制執行新產品的參照完整性。

我們應該選擇哪種解決方案?還是我們應該做點別的?

回答

1

我將有一個名爲Product_Box的第三個(結)表,它具有BoxId(FK到Box)和ProductId(FK到Product)。

這意味着您的Box和Product表格可以保存尚未裝入Boxes中的產品以及還沒有任何產品的Box的信息。

當一個產品被分配到一個盒子時,你只需在新表格中放入一個條目。

+1

除了在產品編號的唯一密鑰應該強制執行該產品不能放成兩框。 – bummi

0

使用產品表,並添加含有BoxID或不能有boxID列(BoxID)Nullable和產品