1

(使用 PHP + mySQL)

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

我有两张桌子,usersforms。users 表保存用户名、密码、名称等,然后 forms 表保存各种不同的 html 表单。

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

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

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

谢谢!

4

1 回答 1

4

创建另一个可以容纳user_idform_id配对的表。这是多对多的关系。

tbl用户:

user_id | name |...

表格

form_id | content | ...

tbl关系:

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)
于 2012-10-12T12:33:25.350 回答