首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP和MySQL中的访问策略

PHP和MySQL中的访问策略
EN

Stack Overflow用户
提问于 2009-08-11 09:10:45
回答 1查看 100关注 0票数 0

我对如何设置我的桌子有点困惑。我有三个可通过复选框选择的角色。注册时....如果用户选择一和二...那么这些页面应该是可见的,如果他选择了一个和三个,那么这些页面,如果选择了他们中的任何一个,那么只有那些...

让我们将页面1命名为客户端管理页面2发票管理页面3查看报告

我应该为这三个或一个单独的字段。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-11 09:23:00

为每个角色保留单独的字段不是一个好主意。如果您想要添加另一个角色,则需要更新数据库结构。

你可以做两件事:

设置字段

创建一个set字段,您可以在其中仅在一个值中定义用户拥有的任何角色,如果您想要添加新角色,则仍需要对表执行ALTERing操作,但至少不会向表中添加其他字段

M:M表

创建用于连接角色和用户的M:M (多对多)表,如果您想要添加另一个角色,此解决方案不需要更改数据库

代码语言:javascript
复制
CREATE TABLE `users` (
    id INT AUTO INCREMENT,
    login VARCHAR(100) NOT NULL,
    password CHAR(32) NOT NULL,
    PRIMARY KEY (id)
)

CREATE TABLE `roles` (
    id INT AUTO INCREMENT,
    name VARCHAR(50) NOT NULL,
    PRIMARY KEY (id)
)

CREATE TABLE `user_roles` (
    user_id INT,
    role_id INT
)

我还将向user roles表添加约束,以确保该表中存在正确的it,但为了简单起见,我不会在该示例中添加它们。有关here的更多详细信息,请参阅

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1259216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档