繁体   English   中英

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

[英]database structure for the user hide their personal info

用户的数据库结构如何隐藏其个人信息,例如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

设置可以是例如HideEmailHideRealNameHidePhoneNUmber ,当用户进行身份验证并将其以会话状态存储为字符串数组(或自定义模型)时,便可以获取用户设置。

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

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

在名为email_hidden的电子邮件之后创建一列

SELECT * FROM user_info WHERE用户ID = $ ID

<?php

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

?>

与其他字段重复

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM