(使用PHP + mySQL)
我希望有人能给我一个关于处理这种情况的最佳方法的想法。
我有两个表,users
和forms
。 users表包含用户名,密码,名称等,然后表单表包含各种不同的html表单。
我想基于每个用户指定用户有权访问哪些表单。我在考虑在users表中创建一个新的字段,该字段将是'forms_allowed',然后存储允许用户访问的每个表单的form_id,用逗号分隔。像3,6,8,15
这样的东西然后,当我想检查允许用户访问哪些表单以及他们是否可以访问所请求的表单(等等)时,我会抓取该字段,将其爆炸并检查form_id。
这似乎是一种麻烦且无效的方式。有没有人有更好的主意?
谢谢!
答案 0 :(得分:4)
创建另一个包含user_id
和form_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)