隐私设置的数据库架构

时间:2015-04-07 09:19:06

标签: mysql database-design database-schema

我有一个包含以下字段的用户表:

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

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

的示例:

1.为每个选项添加一个额外的列(布尔值),这可能不好,因为如果我想添加将来的项目,表格会变长

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

2.添加一个控制每个用户隐私的隐私表

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

有没有更好的方法来做到这一点,如果是这样,你能给我一个粗略的架构或任何有关如何做的提示:)谢谢

1 个答案:

答案 0 :(得分:1)

首先,您绝对不希望在用户表中添加这些标记。 你需要一个不同的表。

你的第二个例子实际上非常接近最佳解决方案。根据项目的整体复杂程度,您可能实际上希望这些设置进一步细分,具体取决于其类型。

但是,只要您只需要标记来确定每种类型的信息是私密的还是非独立的,我相信您的第二个例子是合适的。