0

構築しようとしているデータベースのモデルをマップする方法に苦労しています。データベースを正しくモデル化したら、C# で SQL2LINQ を使用します。

私が検討している最初の部分は、配布リスト用の SQL テーブルの設計です。

次のルールが適用されるため、これらの DL は非常に複雑に見えます。

  1. DL には 3 つの異なるタイプがあります (特定のイベントに使用されます)。
  2. 各タイプの DL には、複数の DL が含まれます (10 以上になる場合があります)。
  3. 人は 3 種類の DL のすべてに参加できます。
  4. 人物は、同じ種類の複数の DL に含めることができます。

その人については、次のような情報を保持します。

  1. 名字
  2. 連絡先番号
  3. 電子メールアドレス

私が気に入らないのは、データベースに同じ人物が複数回存在するという、情報を複製するという考えです。それはあまりきれいではないようです。

これを行うための最良の方法に頭を悩ませることはできません。

4

2 に答える 2

1

外部キーと親子関係について学ぶ必要があります。

あなたが説明しているとおりに正確に設計するかどうかはわかりません。配布リストごとに個別のテーブルを作成することも、所属するイベントタイプを示す列を持つ単一のテーブルを作成することもできます。

配布リストを再帰的にする必要がある理由はわかりませんが、自分自身と外部キーの関係を持つことができます。クエリはそのように書くのは難しいでしょうが、それは十分なスキルを持った人が行うことができます。「再帰SQL」のGoogle。

PERSONテーブル、DISTRIBUTION_LISTテーブル、およびそれらの間にJOINテーブルがあります。私にとって、PERSONとDISTRIBUTION_LISTの間には多対多の関係があるように思えます。

于 2012-06-20T10:20:31.527 に答える
1

人々と配布リストの間に多対多の関係が必要なように聞こえますが、これはジャンクション テーブルでモデル化できます。

  • ID
  • 名字

DistributionListEntries

  • ID
  • DistributionListId
  • 個人ID

配布先表

  • ID
  • タイプ

配布リスト テーブルに直接格納するか、配布リスト タイプに関する追加情報Typeを含むテーブルへの外部キーとしてこれを保持することができます。DistributionListTypes

于 2012-06-20T10:22:51.760 に答える