他のテーブルにリンクSQL Serverの「オブジェクト」/「プロパティ」リレーショナル表
-
13-09-2019 - |
質問
私は正しい用語を考えることはできません、貧しいタイトルすみませんます。
私は、オブジェクトがタイプと特性を有する、オブジェクトを表すデータベース構造を有している。
唯一の特定のプロパティは、特定のタイプに用意されています。
すなわちます。
タイプ - ハウス、カー
プロパティ - 色、スピード、住所
型の車のオブジェクトは、両方の色と速度の特性を持つことができますが、タイプハウスのオブジェクトは、色のみ、アドレスを持つことができます。オブジェクト、タイプ、プロパティの組み合わせの値が値テーブルに格納されます。
これはすべての関係がうまく上記を強制し、働きます。
私のジレンマは、私は別のテーブルすなわちアドレスを持っているということです。この表は、あるAddressIdています。
私は??これを達成するためのきちんとした方法がある。..何とか私のオブジェクト値テーブルに私のアドレステーブルに参加したい。
の [UPDATE] の - より詳細
私はすでに5つのテーブルを持っています。すなわちます。
オブジェクト
プロパティ
ObjectTypes
ObjectPropertyValues
ObjectTypeProperties
これらの表は、プロパティ値は、オブジェクトの種類ごとに割り当てることができるロック関係を有する。
オブジェクトは多分「フェラーリの名を持っているタイプは「車」になるとタイプは車があるので、私は色のプロパティの値を設定することができます。
の値がが数値で、私はIDと一致するcolourcodesテーブルに参加することができるようにしたい。
解決
まず、リレーショナル・データベースに「関係」テーブルである - それは、テーブル間の関係を指すものではありません。関係は、データの断片が関連している方法を定義 - キーに
リレーショナルモデルでは、各エンティティは、正規化されているので、あなたのための1つのモデルは、4つのテーブルになります:
カー(色-FK、住所-FK)
ハウス(色-FK、スピード)
カラー(色PK)
アドレス(アドレス-PK、アドレスデータ)
は、リレーショナルモデルでは、車は家ではありません、あなたは通常、同じテーブルでそれらをモデル化することは極めて低いだろう。
一つは、(塗料が等価ではないので)実際には、家や車のための有効な色は非常に異なっていることを、主張するかもしれないので、一つは、これまで実際のアプリケーションでは、色に基づいて2つのテーブルを結合していないでしょう。
住所にすなわちハウスへのFKやFK - - 興味深い問題がある車がgaragedされる。ここで、可能性のある他のモデリングの考慮事項があるかもしれません。あなたは車や家の鍵を持っていた場合はその後、彼らは両方とも、おそらくキーを表すリンクテーブルをモデル化することになる場合には、キーリングの一部である可能性があります。