SQL Server 2005でdbテーブルを設計していますが、小さなデザイン/アーキテクチャの問題が発生しました...私のメインUsers
テーブル(username, password, lastlogin,
など)がありますが、 2つの異なるユーザプロファイルを格納する。すなわち、格納されるプロファイルデータは、2つのユーザプロファイルの間で異なる。私はすべての共通のユーザーデータをUsers
テーブルに入れました。異なるユーザープロファイルを持つSQL Serverテーブル
Consumers
とMarketers
のテーブルを個別に作成しますか?もしそうなら、これらのテーブルの主キーはUsers_UserID
の1:1の関係を持つ[table-name]_UserID
であるべきですか?
基本的に、登録すると、ユーザーは消費者またはマーケターとして登録する選択肢が与えられます。ユーザーがログインすると、Users
テーブルが照会され、付随するプロファイルがいずれかのテーブルから照会されます。
私はこのアプローチが面倒であることを知っています。これが、これが実現する最良の方法を尋ねるためにここに来た理由です。
ありがとうございます!
EDIT:はまた、Users
表に、私はそれゆえプロファイル表を照会している知って、彼らはログインしたとき、私はユーザを区別することができますUsers_UserType
旗を持っています。
感謝を!はい、私は間違いなく私のテーブルが正規化されていることを確認する必要があります。しかし、設計の観点からは、私のアプローチは以下の通りであるべきだということに同意してください:TABLE1 = 'User''をPKとして 'User_ID'; TABLE2 = 'User_ID'をPK **とし、** FKを' Users_UserID'とする 'Consumers'; TABLE3 = 'User_ID'をPK **、** FKを' Users_UserID' – maGz
とした 'マーケティング担当者 'か、FK参照を外すべきですか?ただし、これは参照整合性がないことを意味します。 – maGz
@maGz:あなたが記述したアプローチは間違いなく珍しいことではありません。私は、それは1:1の関係を強制する典型的な方法であると言いたいと思います(実際はこの場合は1:0 ... 1です)。 –