1

ユーザーがたとえば食料品のリストをまとめられるようなものをデザインしたいと考えています。各ユーザーが複数のリストを持つことができ(つまり、設定された量ではない)、それらのリストすべてに可変数のアイテムがあり (繰り返しますが、設定されていません)、いくつかのアイテムがいくつかの異なるリストに表示される場合、恐ろしくならずにデータベースを作成するにはどうすればよいですか?冗長?

私はこの種の問題にまったく慣れておらず、以前に複雑なデータベースを作成したことがなく、どこから始めればよいかわかりません。これは私が例として思いついたものですが、これが正しい方法であるとは思えません。

ここに画像の説明を入力

どんな助けやアイデアも大歓迎です!

4

2 に答える 2

0

次のようなものが必要なようです。

ここに画像の説明を入力

リストはユーザー専用ですが、アイテムは複数のリストで共有できます。

  • USER と LIST の関係は、単純な外部キーによってモデル化された 1 対多です。
  • LIST と ITEM の間の関係は多対多であり、それらの間のジャンクション (別名リンク) テーブル: LIST_ITEM によってモデル化されます。

上の図で USER と LIST の間の識別関係を使用して、「下流」テーブルでより「自然な」キーを生成しました。

  • JOIN の必要性を減らします (LIST で JOIN する必要なく、特定の LIST_ITEM が属するユーザーを既に知っています)。
  • ただし、下流のキーを「太く」します。

USER と LIST 間の非識別関係を使用する設計 (「よりスリムな」キーを生成する) は、次のようになります。

ここに画像の説明を入力

于 2012-09-11T19:38:45.147 に答える
0

join table LIST_LINK_ITEM3 つのテーブル間で作成できます

彼女の主キーは : 3 つの主キーの構成

于 2012-09-11T17:44:16.690 に答える