用户的数据库结构隐藏其个人信息

时间:2011-04-05 08:12:47

标签: php mysql database

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

Settings

 SettingId int 
 SettingName varchar(100)

UserSettings

 SettingId int
 UserId int

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

然后您可以像这样查询用户设置:

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";
}

答案 1 :(得分:0)

在名为email_hidden

的电子邮件后创建一列

SELECT * FROM user_info WHERE userID = $ ID

<?php

  if( !$user_info['email_hidden'] ) { echo $user_info['email'] }

?>

其他字段重复

这是最简单的方法,但不是最有效的方法。