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

时间:2012-10-12 12:30:56

标签: php mysql permissions

(使用PHP + mySQL)

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

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

我想基于每个用户指定用户有权访问哪些表单。我在考虑在users表中创建一个新的字段,该字段将是'forms_allowed',然后存储允许用户访问的每个表单的form_id,用逗号分隔。像3,6,8,15

这样的东西

然后,当我想检查允许用户访问哪些表单以及他们是否可以访问所请求的表单(等等)时,我会抓取该字段,将其爆炸并检查form_id。

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

谢谢!

1 个答案:

答案 0 :(得分:4)

创建另一个包含user_idform_id对的表格。这是很多很多的关系。

向tblUsers:

user_id | name |...

tblForms

form_id | content | ...

tblRelation:

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)