隐私设置的数据库架构

Database schema for privacy settings

我有一个用户 table 具有以下字段:

USER
--------
userID
email
age
gender
aboutme
homephone
cellphone
address
etc..

我希望用户可以选择显示或隐藏内容,例如 facebook,用户可以控制要显示的内容。 最好的设计是什么?

示例:

1.add 每个选项(布尔值)的附加列,这可能不好,因为如果我想添加未来的项目,table 会变长

USER
-----
userID
email
isemailPrivate
age
isagePrivate
gender
aboutme
homephone
ishomephoneprivate
cellphone
address
etc..

2.add 隐私 table 控制每个用户的隐私

userprivacy
-----------
userprivacyId
userId (fk)
emailprivacy
ageprivacy
homephoneprivacy
etc...

有没有更好的方法,如果有,请给我一个粗略的架构或任何关于如何做的提示:)谢谢

首先,您绝对不想在 user table 中添加这些标志。 为此,您需要一个不同的 table。

您的第二个示例实际上非常接近最佳解决方案。根据项目的整体复杂性,您实际上可能希望根据它们的类型进一步分解这些设置。

但是,只要您只需要标志来确定每种类型的信息是否独立,我相信您的第二个示例是合适的。