1

メンバーシップ テーブルとメーリング リスト テーブルの 2 つのテーブルがあります。

[Members] 
Username
Password
EmailAddress
MailingListOptIn [bit]
Planes [bit]
Boats [bit]
Cars [bit]
  • 果物の列はユーザ​​ーの好みです。

[MailingList]
EmailAddress
MailingListOptIn
  • メーリングリスト作成者はニュースレターの受信を選択できますが、必ずしもメンバーである必要はありません

メーリングリストの設定の保存を開始したいと思います。私の質問は、これら 2 つのテーブルのデータを統合する最良の方法は何でしょうか?

ユーザー名、パスワードなどのメンバー情報のみを格納するメンバー テーブルと、電子メール アドレスと設定を格納する別のプロファイル テーブルを実験しました。メンバーとメーリング リストの両方の設定をこのプロファイル テーブルに保存できますが、FK 制約を追加できず、メーリング リスト作成者を追加できません。

だから今私のオプションは次のとおりです。

  1. 2 つのテーブルに固執しますが、メーリングリスト テーブルに重複した「設定」列を導入します。
  2. 単一のプロファイル テーブルとねじの参照整合性を使用します。

または、別のより良い方法がありますか?

4

2 に答える 2

1
CREATE TABLE Profiles (
 Username
 Password
 EmailAddress
 MailingListOptIn [bit]
 Planes [bit]
 Boats [bit]
 Cars [bit]
);

CREATE VIEW Members AS
  SELECT * FROM Profiles WHERE Username IS NOT NULL
  WITH CHECK OPTION;

CREATE VIEW MailingList AS 
  SELECT EmailAddress, MailingListOptIn, Planes, Boats, Cars
  FROM Profiles WHERE Username IS NULL
  WITH CHECK OPTION;
于 2009-06-03T17:20:21.763 に答える