【发布时间】:2011-11-21 13:50:51
【问题描述】:
我有一个社交应用程序,它有一个带有典型标准字段的 user_profile 表,例如
user_id (unique)
name
我想让用户之间共享保存在名为info 的单独表中的信息,该表具有以下字段:
user_id_fk
agent_name
agent_phone
agent_address
所以我的想法是,如果我是用户 #1 而你是用户 #6 - 我可以授权你查看我的 info 表中的数据。然后,当您查看我的个人资料时,一个 PHP 函数会检查您是否已获得授权,并显示一个链接到包含我的信息的页面的按钮。
我的问题是:最好的实现方式是什么?
我想到了一些解决方案,但想听听您的意见:
[1] 在user_profile 中创建一个名为info_access 的新字段,其中将包含一个逗号分隔的字符串,其中包含所有授权访问的用户。明显的缺点是此类字符串的限制(例如,如果对信息的访问被撤销、未标准化等,则很难删除 user_id)
3,23,14,12,11
[2] 创建一个名为info_access 的新表,如下所示:
user_id_fk can_access
6 3
6 23
6 14
6 12
6 11
在这种情况下,我会查询为
select * from info_access where user_id_fk = 6
但我不确定如何编写 PHP 函数以检查在访问授权我查看信息的人的个人资料时是否会看到该按钮。
对架构/代码有什么建议吗?
【问题讨论】:
标签: php mysql database-design normalization