mysql-隐私问题-数据库
作者:互联网
如果我有这张桌子:
users
-----
id_users (pk)
age
name
gender
salary
这些值中的每一个都需要一个选项来设置是否在用户配置文件中可见.
您认为这是最好的方法吗?
例如,对人员x隐藏字段薪水,但对人员y允许.
基本上有些人可以看一些属性.
谢谢
解决方法:
如果默认隐私将显示给所有人,则可以创建一个表以将某个用户的所有隐藏设置保存到某个用户.
这是我建议的表格,其中包含三列的复合PK:
hide_details
------------
visitor_id
user_id
what
一些样本数据将是:
visitor_id | user_id | what
1 2 age
1 2 name
3 4 salary
如果您在用户表中添加另一列,则以后不必更新此表架构.建议,如果要使速度如此之快,可以将列名称映射为整数,然后在应用程序逻辑中使用该名称进行比较.例如. name = 1,age = 2,依此类推…因此,当您进行比较以隐藏名称或不隐藏名称时,只需检查hide数组中是否存在具有该整数的记录.
您可以按以下方式使用它:在显示个人资料之前,您需要获取该访客的所有隐藏记录到该个人资料,并将它们放入数组中,然后显示未隐藏的所有内容.
例如.
$hide = array('name', 'age', 'salary');
然后,您可以像这样检查:
echo (in_array($hide)) ? '' : '<div>Name:'.$name.'</div>';
标签:database-design,mysql,database 来源: https://codeday.me/bug/20191208/2090157.html