如何为用户设置模式以授权访问某些信息


How to set up a schema for users to authorize access to certain information?

我有一个社交应用程序,它有一个带有典型标准字段的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的新字段,它将包含一个逗号分隔的字符串,其中包含所有授权访问的用户。明显的缺点是这些字符串的局限性(例如,如果对info的访问被撤销,而不是规范化,则很难删除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函数来检查我是否会在访问授权我查看信息的人的个人资料时看到按钮。

对模式/代码有什么建议吗?

第二种方法是解决您的问题的最佳方法。然后查询info_access表,查看info_access表中是否有查看配置文件的user id和查看者的user id的记录