1

A、B、Cの3つのオブジェクト間の関係は
次のとおりです。A:B-1:M
A:C-1:M
B:C-M:M。ただし、同じAインスタンスを共有する必要があるという制限があります。

私の現在のスキーマは次のとおりです。
a(id、data)
b(id、a_id、data)
c(id、c_id、data)
b2c(b_id、c_id)

データの不整合を回避するためのより良いスキーマを設計するにはどうすればよいですか?

この投稿のタイトルは一般的なものだと思います。より良いタイトルを思いついた方がいらっしゃいましたら、この投稿を自由に編集してください。


例として、広告ウォールを生成するためのアプリを開発します。広告ウォールは多くに分割されていsectionsます。各セクションにはdimension(幅と高さ)があります。たくさんありますがads、それぞれに次元があります。広告を複数のセクションに表示でき、セクションに複数の広告をローテーションさせることができると考えてください。したがって、セクションと広告の関係は多対多ですが、同じディメンションを持っている必要があるという制限があります。

4

2 に答える 2

0

これらの2つの関係でB:C関係をすでに定義しています:A:B-1:M A:C-1:M

B:C関係テーブルが必要な理由がわかりません。


あなたの例を考えると、私は2つのテーブルしか見ていません。広告には幅と高さがありますが、1:1の関係があるため、幅と高さは広告テーブルの単なるフィールドです。セクションは、幅と高さに対して1:1の関係もあります。2つのテーブルのみ。広告とセクションの間に厳密な関係も見られません。

于 2011-04-25T03:01:24.640 に答える
0

これは、コードで適用する必要のあるビジネスルールだと思います。Section:Ad as M:Mはすでに正規化されています。

ただし、Dimensionテーブルが必要かどうかはわかりません。これが、例で「A」テーブルとして考えている場合です。

于 2011-04-25T03:14:28.833 に答える