2

ここに画像の説明を入力![ここに画像の説明を入力][2]3 層構造を作成するデータベースに取り組んでいます。アイデアは次のようになります。

  • 第 1 レベル:Orderテーブル
    • 主キー -OrderID
  • 2階:OrderlineItemHeaderテーブル
    • 主キー -OrderID
    • 主キー -OrderLineItemHeaderID
  • 3階:OrderLineItemテーブル
    • 主キー -OrderLineItemHeaderID
    • 主キー -OrderLineItemSequence

OrderlineItemHeader.OrderLineItemHeaderID問題は、2 番目と 3 番目のレベル ( to )の間で外部キーを作成できないことですOrderLineItem.OrderLineItemHeaderId。hierarchyid データ型について読んできましたが、問題はそれらが同じテーブルに関連付けられていることです。ここで示しているのは主要な列ですが、各表にはさらに 5 列から 10 列の必要な情報があります。

私は SQL Server 2008 を使用しており、それを関連付けるプログラムは VB.NET 4 になります。Web サイトを初めて使用するため、図の画像を追加できません。

食品の例で説明をもう一度入れます。

あなたは、米国内のすべてのレストランを所有するフード プロバイダーに大量の注文を出しました。

発注された注文には、その 1 つの巨大な注文リストに関する一般的な情報が含まれています。

OrderID、OrderNO、OrderDate

注文にはさまざまな種類の食品があり、これが第 2 レベルです。

ピザ、チキン、肉、魚。

それぞれ 1000 個ずつ注文し、いつ何が届くかを知る必要があります。

だから彼らはあなたにその情報を提供し、あなたはみんなが食べようとしているときに食べようとしていることを示す必要があります.

ピザから、火曜日に飛行機で 100 人が到着します。来週来る水で500人。残りは陸路で2週間。

肉は明日 500 を予定していますが、準備が整っていないため、残りは将来の日付のためにバックオーダーされています。

そのため、すべての情報をテーブルに入れる必要があるため、3 層モデル

4

2 に答える 2

1

これには多くの追加作業がありますが、これまでの説明に基づいた基本的な概念は次のとおりです。

ここに画像の説明を入力

編集

議論に基づく2番目の図(歴史のために古いものを保持)

ここに画像の説明を入力

于 2011-11-11T21:45:24.833 に答える
0

元の問題ステートメントには次のものがあります。

3rd Level : OrderLineItem table
PrimaryKey - OrderLineItemHeaderID
PrimaryKey - OrderLineItemSequence

OrderLineHeader への外部キーを作成するには、完全な PK を含める必要があるため、次のものが必要です。

3rd Level : OrderLineItem table
PrimaryKey - OrderID
PrimaryKey - OrderLineItemHeaderID
PrimaryKey - OrderLineItemSequence

しかし、すべての ID が人為的なものである場合、より良い解決策は次のようになります。

1st level: Order table
Primary Key - OrderID

2nd Level: OrderlineItemHeader table
Primary Key - OrderLineItemHeaderID
Foreign Key - OrderID

3rd Level : OrderLineItem table
Primary Key - OrderLineItemID
Foreign Key - OrderLineItemHeaderID
于 2011-11-11T22:55:28.820 に答える