基本上我为我的用户(它的夜总会网站)提供了一张桌子,现在我正在努力改善他们的隐私.
到目前为止,我只是向登录用户显示一些信息,但现在我想给用户选择.
我的问题是:做什么更好的方法?
你推荐我什么,为我希望用户管理隐私的每个房产创建一个新房产?
表“用户”的示例:
-ID
-电子邮件
-电话
-ShowEmail(int)和0将是no-one,1是登录用户,2是朋友
-ShowPhone(int)
这是一个很好的选择?我不太确定我是否应该创建一个新表来处理隐私设置.我必须承认数据库设计不是我的专长,所以真的需要一些关于此的反馈.
谢谢!
编辑:隐私不只是简单的属性.我需要处理用户注册的事件,用户被标记的照片等.
最佳答案 这是一种可能性,但它会让你的桌子变得非常大并且有一些多余的字段.您有两种选择我个人更喜欢:
>使用flag字段.优点是你只需要1个字段,缺点是它有利于良好的关系数据库实践,如果你想从中选择一些东西,查询会变得更加模糊.
>使用只有3个字段的另一个表,例如“UserID”,“FieldName”和“ShowTo”,后者是ENUM(如果您更喜欢,则为整数).这是更多的工作,但是非常清楚,并且非常好.
查询看起来像这样:
1.
SELECT phone, (privacyFlags&8) AS showPhone FROM users
2.
SELECT user.phone, privacy.ShowTo AS showPhone FROM users
JOIN privacy ON privacy.userID=users.userID
WHERE privacy.FieldName = 'phone'