2013-02-22 86 views
1

我在我的SQL數據庫目前有問題有兩個表。第一個,MasterPartsList只是我們系統中所有分部的入口點,由屬性pn給出。第二個表,MasterPartsLists包含的屬性給父子(物料清單)爲組件在MasterPartsList信息:外鍵和實體框架關係設計

parentAssyPnpn,這是MasterPartNumbers外鍵。

兩個表的樣子:

MasterPartNumbers (parent) one -> many  MasterPartsLists (children) 
(PK) pn         (fk) pn 
     desc          parentAssemblyPn (could also be a fk) 
               qty 
               price 

這使我對問題1:

Q1:在MasterPartsList頂級裝配的零件編號,我應該

一個。 b。請留下parentAssyPnNULL,並且只填寫pn,並且表中沒有主鍵

b。設置爲parentAssyPn = pn並創建partial key使用 parentAssyPn and pn`?

問題2:在這兩種情況下,這將如何影響我如何將我的實體框架實體數據從我的應用程序中適當地(到兩個表格)保存到數據庫中,在該應用程序中我公開了ObservableCollection S'

在此先感謝!

+0

我不確定我是否在追蹤您的問題。你能提供幾行示例數據嗎? – Bobson 2013-02-22 19:23:18

+0

感謝回覆@Bobson--希望表格示例的添加有助於:) – Rachael 2013-02-22 20:44:38

+0

對於Q1,我說「讓parentAssyPn爲null,並將主鍵設爲pn」但我不知道Q2。 – Bobson 2013-02-22 20:51:22

回答

1

您允許更改數據模型嗎?

如果MasterPartsLists中的某個部件可以出現多個MasterPartNumbers的子部件,則爲多對多關係。

我建議如下表:

部分

PARTNUMBER(PK)

說明

價格

大會

Parent_pn(PK)(FK)

PARTNUMBER(PK)

數量

你的全零部件庫存存儲在部件表。 您不會在彙編表中存儲任何頂級裝配。

對於表格組裝,請閱讀它: 要彙編零件{Parent_pn},我需要{零件編號}的{qty}個項目。 (根據需要重複以完成Parent_pn的組裝。)

編輯: 讓我們來嘗試一個簡單的例子,其中筆由彩色墨水,桶和帽組成。

你的部分表看起來像:

1,紅筆

2,藍筆

3,紅墨水

4,藍墨水

5 ,桶

如圖6所示,帽

組裝:

1,3,1 - 紅色筆需要紅色墨水

1,5,1 - 紅色筆需要一個桶

1 ,6,1 - 紅色筆需要一個帽

2,4,1 - 藍色筆需要藍色油墨

2,5,1 - 藍色筆需要一個桶

2,6,1 - 藍色筆需要一個帽

使用這個例子,我們可以看到,這是一個多對多的關係: - 一個主人的一部分(如紅筆)由許多組件組成。 - 一個組件(例如蓋子)可以用來組成很多主要部件。

這是否適用於您的方案?

+0

非常感謝@chabzjo。在沒有父母的頂級會員的情況下,你對我建議什麼?如果它是「複合」(或「部分」)鍵的一部分,則它將不具有parent_pn。這讓我唯一的選擇是讓parent_pn = pn(本身)。這是公認的做事方式嗎?另外,請確定 - 您是否確定考慮到相同的PartNumber可能屬於多個Parent_pns?非常感謝您的幫助:) – Rachael 2013-02-26 02:36:38

+0

我知道的東西肯定是:只有一種方法來組裝。 – Rachael 2013-02-26 02:42:12

+0

我相信它總是一個 - 很多 – Rachael 2013-02-26 02:43:41