用户的数据库结构如何隐藏他们的个人信息,例如hp,电子邮件地址和全名?

我应该创建一个表(hidden_​​info)来保留用户通过我的网站将其设置为私有时用户的所有私有个人信息。

然后在user-profile.php页面上,使用mysql在hidden_​​info_table上选择*,其中user == $ username,然后使用其他mysql选择并显示未在hidden_​​info_table上列出的信息?

那将是很多工作,还有其他更好的方法来构建数据库以隐藏用户的个人信息功能吗?

最佳答案

我不会使用单独的表。我将单独有一个设置表,其中包含它们可用的隐私选项。

Settings

 SettingId int
 SettingName varchar(100)

UserSettings

 SettingId int
 UserId int


设置可以是例如HideEmail,HideRealName,HidePhoneNUmber,当用户进行身份验证并将这些设置以会话状态存储为字符串数组(或自定义模型)时,您可以获得用户设置。

然后,您可以查询用户设置,如下所示:

SELECT SettingName
  FROM UserSettings
  LEFT JOIN Settings
  on UserSettings.SettingId = Settings.SettingId
WHERE UserId =1


这将返回当前用户的设置列表。这样您就可以很轻松地了解PHP方面的内容。


将结果存储在字符串数组中
检查数组中是否存在YourSetting,如果不显示该元素


有了数组后,只需检查值是否存在并执行所需的逻辑

if (!in_array("HideEmail", $results)) {
    echo "Show email address here";
}

10-04 21:35
查看更多