0

私はマネージャーから、SQL Server を使用して調達部門用の個人用保護具データベースを設計するように依頼されました。データベースの要件を収集する際に、手、目と顔、頭、体、履物という 5 つの PPE カテゴリを考え出しました。 .

現在、前述のすべてのカテゴリを格納する 1 つのテーブルがあり、

PPCatTable:* 手、目と顔、頭、体、履物

各カテゴリには、いくつかのサブセットがあります。

履物:* 電気抵抗レベル、HasSteelToe、色、高さ

手袋:* ハザード、危険度の低下、保護材

しかし、子供のテーブルの構造がどのように見えるべきか、各カテゴリの異なるサブセットを格納する方法に困惑しています。各サブセットには異なる番号属性があり、調達部門はすべての異なる属性をキャプチャすることを主張しています。

子カテゴリごとにテーブルを作成する必要がありますか?

PPEEOrderDetails テーブルの子の主キーとして参照されるフィールドはどれですか?

対応する子属性を XML データ型として親カテゴリ テーブルに格納する必要がありますか?

4

1 に答える 1

0

エンティティのスーパータイプ/サブタイプの手法を使用してアイテムをモデル化したい。次のデータ モデルを検討してください。

ERD

さまざまなカテゴリには、個別の属性セットがあるため、それぞれ独自のテーブルがあります。各サブカテゴリには、主キーとして、スーパータイプ テーブルへの外部キーでもある列がありますPPEQUIP

あなたのようなカテゴリのリストでPPEQUIPないことに注意してくださいPPCatTablePPEQUIP各サブタイプ テーブルのすべてのアイテムのレコードが含まれています。の列PPEQUIPは共通の識別子であり、partitioning attributeどのサブタイプがアイテムに適用されるかを示す列です。すべてのタイプに共通する他の属性がある場合、それらの共通の属性もPPEQUIP.

一般的に機器を参照する必要があるテーブルがある場合、機器がどのカテゴリに分類されるかを特に考慮せずに、ORDER_DETAILその外部キー参照はスーパータイプ テーブル (つまりPPEQUIP) に移動します。一方、特定のカテゴリのみを参照する必要がある場合は、サブタイプ レベルでそれを行います。

于 2013-01-13T13:01:06.027 に答える