php - 为用户设置权限的最佳方式

标签 php mysql permissions

(使用 PHP + mySQL)

我希望有人能给我一个处理这种情况的最佳方法的想法。

我有两个表,usersforms。 users 表包含用户名、密码、名称等,然后 forms 表包含各种不同的 html 表单。

我想在每个用户的基础上指定用户可以访问哪些表单。我正在考虑在用户表中创建一个新字段,该字段将是“forms_allowed”,然后存储允许用户访问的每个表单的 form_id,以逗号分隔。像 3,6,8,15 这样的东西

然后,当我想检查允许用户访问哪些表单以及他们是否可以访问所请求的表单(等)时,我会捕获该字段,展开它并检查 form_id。

这似乎是一种麻烦且无效的方法。有人有更好的主意吗?

谢谢!

最佳答案

创建另一个表来保存 user_idform_id 对。这是多对多的关系。

tbl用户:

user_id | name |...

表格

form_id | content | ...

关系:

user_id | form_id

因此您可以简单地通过单个查询获取信息:

SELECT * FROM `tblUsers` AS `t`
JOIN `tblRelation` as `r` ON (t.user_id = r.user_id)
JOIN `tblForms` as `f` ON (f.form_id = r.form_id)

关于php - 为用户设置权限的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12859129/

相关文章:

mysql - Mysql无法建表

mysql - 如何有效地生成大量行

linux - Magento2 的 Ubuntu 网络服务器权限设置

docker - docker中的安装权限被拒绝

PHP 变量计算不正确

php - 从 php 表单操作输出 AJAX 响应的一部分

php - Slim 框架忽略 fatal error 的自定义错误处理程序

mysql - 如何使用 MySQL Workbench 自动备份 MySQL

使用 IOS 13 编译的应用程序的 IOS14 跟踪权限

php - 使用 .on() 加载 slim box