【问题标题】:Best way to set permissions for a user为用户设置权限的最佳方法
【发布时间】:2012-10-12 12:30:56
【问题描述】:

(使用 PHP + mySQL)

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

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

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

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

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

谢谢!

【问题讨论】:

    标签: php mysql permissions


    【解决方案1】:

    创建另一个包含 user_id 和 form_id 对的表。这是多对多的关系。

    tbl 用户:

    user_id | name |...
    

    tblForms

    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)
    

    【讨论】:

    • 这也将使您能够为用户添加和删除单个表单的权限。这是最常见的做法。
    • 太好了,非常感谢。今天回去工作,这是我要走的路。干杯!
    猜你喜欢
    • 2017-08-15
    • 2011-04-10
    • 2023-03-16
    • 2021-05-11
    • 2016-07-09
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    相关资源
    最近更新 更多