Php 如何为用户设置授权访问特定信息的模式?
我有一个社交应用程序,它有一个带有典型标准字段的user_profile表,例如Php 如何为用户设置授权访问特定信息的模式?,php,mysql,database-design,normalization,Php,Mysql,Database Design,Normalization,我有一个社交应用程序,它有一个带有典型标准字段的user_profile表,例如 user_id (unique) name 我希望允许用户之间共享保存在名为info的单独表中的信息,该表包含以下字段: user_id_fk agent_name agent_phone agent_address 因此,如果我是用户1,而你是用户6,我可以授权你查看我的信息表中的数据。然后,当您查看我的个人资料时,PHP函数会检查您是否获得授权,并显示一个链接到包含我的信息的页面的按钮 我的问题是:实现这一
user_id (unique)
name
我希望允许用户之间共享保存在名为info的单独表中的信息,该表包含以下字段:
user_id_fk
agent_name
agent_phone
agent_address
因此,如果我是用户1,而你是用户6,我可以授权你查看我的信息表中的数据。然后,当您查看我的个人资料时,PHP函数会检查您是否获得授权,并显示一个链接到包含我的信息的页面的按钮
我的问题是:实现这一点的最佳方式是什么
我想到了一些解决方案,但想听听你的意见:
[1] 在用户配置文件中创建一个名为info\u access的新字段,该字段将包含一个逗号分隔的字符串,其中包含所有授权访问的用户。明显的缺点是这些字符串的局限性,例如,如果对信息的访问被撤销、未规范化等,则很难删除用户id
3,23,14,12,11
[2] 创建一个名为info_access的新表,如下所示:
user_id_fk can_access
6 3
6 23
6 14
6 12
6 11
在这种情况下,我将作为
从用户id=6的信息访问中选择*
但是我不确定如何编写PHP函数来检查我在访问授权我查看信息的人的个人资料时是否会看到该按钮
对模式/代码有什么建议吗?第二种方法是解决问题的最佳方法。然后,您可以查询信息访问表,以检查查看配置文件的用户id和查看器的用户id的记录是否存在于信息访问表中。第二种方法是解决问题的最佳方法。然后,您可以查询info_访问表,以检查info_访问表中是否存在查看配置文件的用户id和查看器的用户id的记录