我有2个表:会员表和邮件列表表。
[Members]
Username
Password
EmailAddress
MailingListOptIn [bit]
Planes [bit]
Boats [bit]
Cars [bit]
和
[MailingList]
EmailAddress
MailingListOptIn
我想开始存储邮件列表人员的偏好。我的问题是整合这两个表数据的最佳方法是什么?
我已尝试使用成员表来存储仅包含用户名,密码等成员信息以及存储电子邮件地址和首选项的单独配置文件表。成员和邮件列表首选项都可以存储在此配置文件表中,但我无法添加FK约束,因此我无法添加邮件列表。
所以现在我的选择是:
或许还有另一种更好的方式?
答案 0 :(得分: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;
答案 1 :(得分:0)
我会这样做:
i)以电子邮件地址为键的“人”表
ii)“会员”表,只有会员在此表中有记录,通过电子邮件地址链接到“人”(也是此表中的键)
iii)“mailingList”表,具有mailingList,描述和其他字段的唯一ID
iv)“mailingListSubscriber”表(一种关系),其中包含该人的电子邮件地址和邮件列表的ID。
很抱歉添加表格,但我认为这是满足要求的适当规范化的最小设置。