php - 如何为用户设置架构以授权访问某些信息?

标签 php mysql database-design normalization

我有一个社交应用程序,它有一个包含典型标准字段的 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 函数代码来检查我在访问授权我查看信息的人的个人资料时是否会看到该按钮。

对架构/代码有什么建议吗?

最佳答案

第二种方法是解决您的问题的最佳方法。然后可以查询info_access表,查看info_access表中是否存在收看资料的用户id和查看者的用户id的记录。

关于php - 如何为用户设置架构以授权访问某些信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7493930/

相关文章:

php - codeigniter 中的 Ajax 调用不像我预期的那样

php - Mysql 使用 AND 和 OR 进行搜索

postgresql - 将数据库中特定架构上的所有内容授予 PostgreSQL 中的组角色

具有良好键盘快捷键的 MySQL 表创建 GUI? Windows 或基于 Web

php - Redis中存储树结构

php - 无法在 Phpstorm 中为 composer 添加命令行工具支持

php - SQL 查询当前日期在开始/结束日期内的条目

php - 获取总投票表 mysql 表并比较它?

mysql - 如何在事务回滚中恢复自动ID

数据库实现帮助: Time-Series data