1

現在問題となっている SQL データベースに 2 つのテーブルがあります。1 つ目MasterPartsListは、プロパティによって指定された、システム内のすべての部品番号のエントリ ポイントですpn。2 番目のテーブルには、次のプロパティで指定された、MasterPartsList 内のアセンブリMasterPartsListsの親子 (部品表) 情報が含まれています。

parentAssyPn およびpnからの外部キーですMasterPartNumbers

2 つのテーブルは次のようになります。

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

これは私を質問1に導きます:

Q1: のトップ レベル アセンブリの部品番号についてはMasterPartsList

を。をそのままにして、問題のアセンブリ部品番号をparentAssyPn NULL入力pnするだけで、テーブルに主キーはありません

b. parentAssyPn=を設定し、 parentAssyPn pn`を使用してpn作成しますか?partial keyand

Q2: 2 つのケースのいずれにおいても、s からデータを公開するアプリケーションから Entity Framework エンティティ データをデータベース (2 つのテーブル) に適切に保存する方法に、これはどのように影響しますObservableCollectionか?

前もって感謝します!

4

1 に答える 1

1

データモデルを変更できますか?

MasterPartsLists 内のパーツが複数の MasterPartNumbers の子として表示される場合、多対多の関係になります。

次の表をお勧めします。

部品番号 (PK)

説明

価格

組み立て

Parent_pn (PK)(FK)

部品番号 (PK)

数量

すべての部品在庫は部品テーブルに保存されます。アセンブリ テーブルにトップ レベル アセンブリを保存しません。

テーブル アセンブリについては、次のように読みます。部品 {Parent_pn} を組み立てるには、{PartNumber} の {qty} 個のアイテムが必要です。(Parent_pn の組み立てを完了するまで、必要に応じて繰り返します。)

編集: ペンがカラーインク、バレル、キャップで構成されている簡単な例を試してみましょう。

Part テーブルは次のようになります。

1、赤ペン

2、青ペン

3、赤インク

4、青インク

5、バレル

6、キャップ

組み立て:

1, 3, 1 -- 赤ペンには赤インクが必要

1, 5, 1 -- 赤ペンにはバレルが 1 つ必要です

1, 6, 1 -- 赤ペンにはキャップが 1 つ必要です

2, 4, 1 -- 青のペンには青のインクが必要

2, 5, 1 -- 青いペンにはバレルが 1 つ必要です

2, 6, 1 -- 青いペンにはキャップが 1 つ必要です

この例を使用すると、これが多対多の関係であることがわかります。 - マスター パーツ (例: 赤ペン) は多くのコンポーネントで構成されています。- コンポーネント (キャップなど) を使用して、多くのマスター パーツを構成できます。

これはあなたのシナリオに当てはまりますか?

于 2013-02-25T23:23:11.533 に答える