我有一个简单的 php Web 应用程序。我需要为用户添加一个选项,以隐藏其公开个人资料中的某些详细信息。数据库类似于:
id username phone email
1 foo1 888-888 a1@b.com
2 foo2 999-999 a2@b.com
3 foo3 111-111 a3@b.com
现在我有两个选择。首先是另外一个表,用id作为外键来引用。喜欢
fkeyID disp_phone disp_email
1 0 0
2 0 1
3 1 1
其中 1 为真,0 为假。然后对 2 个表使用 SQL 连接来查找他们是否想要显示他们的电话/电子邮件。
第二个选项是:在一些标志值(例如 $)前面添加前缀,以防用户想要禁止公共(public)查看。然后在显示或保存首选项之前使用简单的 php 检查。喜欢:
id username phone email
1 foo1 $888-888 $a1@b.com
2 foo2 $999-999 a2@b.com
3 foo3 111-111 a3@b.com
请说明就空间和复杂性而言哪个是更好的选择以及原因。
最佳答案
如果您有很多列,那么您最终会得到很多可见性标志。如何在原始表中保留一个可见性列,该列是一个整数值,每个可见字段都有一个位。
define(VISIBLE_PHONE, 0x00000001);
define(VISIBLE_EMAIL, 0x00000002);
define(VISIBLE_DOB, 0x00000004);
这些位被“或”在一起以创建可见性值。
然后测试如下:
if (row->visibility & VISIBLE_PHONE)
{
// display phone number
}
关于php - 隐藏个人资料中的详细信息。 PHP 哪个是更好的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5079027/