社区
基础编程
帖子详情
权限,脑子乱了~~
countstars
2004-04-07 11:27:24
对于分类,假设有几个个权限:
分类ID、是否可读、下载、回复、编辑、添加、删除
用户组:
1.普通用户--是否允许可读、可下载、可回复
2.编辑 --是否允许编辑、添加、删除
3.管理员 --不论分类设置和权限组设置如何,均可(不知道是不是这样)
权限表:
分类ID,是否可读、下载、回复、编辑、添加、删除
现在这里面乱了,数据表到底该怎么设计?哪个对应哪个?怎么感觉有些重复了,有时候又感觉不够严密,矛盾
不知道该怎么设计这种对应关系。。。请指点,多谢。乱了~~
...全文
139
29
打赏
收藏
权限,脑子乱了~~
对于分类,假设有几个个权限: 分类ID、是否可读、下载、回复、编辑、添加、删除 用户组: 1.普通用户--是否允许可读、可下载、可回复 2.编辑 --是否允许编辑、添加、删除 3.管理员 --不论分类设置和权限组设置如何,均可(不知道是不是这样) 权限表: 分类ID,是否可读、下载、回复、编辑、添加、删除 现在这里面乱了,数据表到底该怎么设计?哪个对应哪个?怎么感觉有些重复了,有时候又感觉不够严密,矛盾 不知道该怎么设计这种对应关系。。。请指点,多谢。乱了~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wanzhen
2004-04-17
打赏
举报
回复
呵呵,我这个就是按组来划分权限,用户表中留个ID以便确认他属于那个组,我这个只是修改组的权限,不改单个用户的权限。
如果按照模块来分权限,那就把组的概念换成模块组,一个模块组里的字段以模块名称命名。数据如上面一样。如果需要更复杂些,把模块分组,不过这些都存在一张表里。用户表中存的仍是与权限表相关的ID。
你要让用户组调哪个模块,就把那个组对应到权限表中的模块的值设为true,否则false。
countstars
2004-04-17
打赏
举报
回复
你没考虑到用户属于组,但是用户在不同的模块可能有不同的权限(位于不同组)
wanzhen
2004-04-17
打赏
举报
回复
我觉得把所有要实现得权限组都放入一个权限表里。
表中的字段为:
可读
下载
回复
编辑
添加
删除
往里面添加的数据,一条记录就是一个用户组。
比如:
先插入一条普通用户组的权限数据 INSERT INTO tablename VALUES('true','false','true','false','true','false')。
插入管理员组的权限: INSERT INTO tablename VALUES ('true','true','true','true','true','true')
这样只要调用就可以了,以后增加字段就增加了权限,改起来方便,维护更方便
wubai250
2004-04-13
打赏
举报
回复
建义
采用
win2k的共想权限试一试!
cullstar
2004-04-13
打赏
举报
回复
countstars(深空)
其实你说的“用户组”就是我指的“角色”,用户组只不过是一个容器,和用户及用户权限没有直接的关系!
你可以这样做嘛,给用户组也分配权限(即权限列表RightsList中的权限),它和分配给用户的权限是一样的,然后再把用户添加到组中去。在页面中取得用户的权限,其实就是取得这个用户所在组的权限和这个用户的独立权限的“并集”!
x个用户,y个分类的话,理论上就要有x*y行数据。------你说的没错,所以才把用户和权限的对应关系单独做成一个表UserRightsList,难道在数据表中的查询还不算是快的吗?当然如果有更好的解决办法,我也愿意洗耳恭听,呵呵
至于表UserRightsList中的UserRightsList字段,你也可以做成100110这样的格式,每一个位代表一个权限,然后利用位运算读取权限。。但在ASP中似乎没有位运算(我没找到相关资料),所以我基本上用的都是三位或四位数字来代表一个权限!
我说的方法绝对是可行的,因为我就反复用过很多次,但有些细微之处可能需要改进我还没找到更好的方法!:)
xuzuning
2004-04-12
打赏
举报
回复
必须的冗余还是要的
栏目ID 组ID 操作
栏目1 组1 ...
栏目1 组2 ...
栏目1 组3 ...
栏目2 组1 ...
栏目3 组1 ...
countstars
2004-04-12
打赏
举报
回复
请问唠叨:
描述该栏目、版面可由谁做何种操作
这个谁该怎么设置?对组还是对用户?如果是组,以字段表示:
栏目ID 组1 组2 组3
每添加一个组,就得修改一次数据表。
如果是组的成员,那么如果成员过多(比如很多会员),那么又该如何?
所以请问这个“由谁做何种操作”的谁怎么样定义?谢谢
xuzuning
2004-04-12
打赏
举报
回复
关系到两种权限
1、栏目、版面的权限,描述该栏目、版面可由谁做何种操作
2、用户、组的权限,用户的权限由组派生,可修改但不可超越所在组的权限
两组相交即可得到当前用户在当前版面的权限
countstars
2004-04-12
打赏
举报
回复
而且是多个分类,没有人作过完整的权限分配么?思路也行
syp8065
2004-04-12
打赏
举报
回复
可是还要求单个用户做设置。
qm0445
2004-04-12
打赏
举报
回复
用组,组对应权限!用户对应组!就好了!
countstars
2004-04-12
打赏
举报
回复
重新看了下 cullstar(我踏月色而来╰☆╮) 的权限分配,清晰多了,只是这样好像不适用于多个分类,x个用户,y个分类的话,理论上就要有x*y行数据。
用户组的概念没有用到。偶然老兄的确实不错,嘿嘿,理理思路
skystar008
2004-04-12
打赏
举报
回复
cullstar(我踏月色而来╰☆╮)
目前觉得他的思路最好了.
skystar008
2004-04-12
打赏
举报
回复
这样分要写死人了.哈哈哈.
ustb
2004-04-12
打赏
举报
回复
郁闷,掉了一个字,“如果栏目不是很多,可以用一个字段来记录,然后用分隔符隔开,但这样是[不]规范的”.
ustb
2004-04-12
打赏
举报
回复
这里面的问题也不是太复杂,用论坛的例子来简单的分析如下:
目的:
1.不同的用户拥有不同的权限,
2.在不同的栏目里允许不同的用户进入.
实现:
1.将用户分组,组里设置最基本的权限.当然可以默认指定一些权限.比如用户组可以看帖,回帖等.
2.如果栏目不是很多,可以用一个字段来记录,然后用分隔符隔开,但这样是规范的.如果想要得到更好的结构,那应当建立一个对应表,来记录下栏目允许的用户组.
表结构:
用户组表
+----------+----------+-----------+-----------+
ID 组名 权限名1 权限名2 ……
+----------+----------+-----------+-----------+
groupid groupname allow_view allow_post ……
+----------+----------+-----------+-----------+
1 普通用户 1 1 ……
+----------+----------+-----------+-----------+
……
论坛权限表
+----------+----------+-----------+-----------+-----------+
版块ID 用户组ID 版块名 权限名1 权限名2 ……
+----------+----------+-----------+-----------+-----------+
blockid groupid blockname allow_view allow_post ……
+----------+----------+-----------+-----------+-----------+
2 1 程序设计 1 0 ……
+----------+----------+-----------+-----------+-----------+
2 1 电影下载 1 1 ……
+----------+----------+-----------+-----------+-----------+
……
如上表所示,普通用户组本身是拥有看帖权和发帖权的,这在group表里可以设置。到了具体的版块,还可以设置针对某一个组的特殊权限。如上,普通用户组在程序设计版块只是有了看帖权,发帖权被屏蔽掉了。而在电影下载版块,他既有看帖权又有发帖权.
如上所示,我们实际上可以为我们的系统加上更多的功能,如聊天,交友,这些功能用一个表是不能完成的。我们可以为其指定属于自己的权限对应表。实际上用户组这个表中的权限可以看作是这些权限对应表中的权限字段的和,只是用户组提供了一个默认值。
如上的办法虽然可以处理很复杂的权限关联,但是扩展性不是太好,如果要为某一栏目加上一个权限字段,那对应的用户组表里也得加上这个字段,这大概是其最大的局限性。并且在权限判断时得要判断两次,一次是用户是否有对应的基本权限,第二次是要判断用户在指定的版块里是否有权限。这些是此法的局限性:)
个人意见,仅供参考。
ccterran
2004-04-12
打赏
举报
回复
还真有点麻烦,可不可反过来呢?每个栏目的
不能阅读 编辑 发表
1,2 2,3,5 1,7
就是栏目再加三个字段,记录拥有此权限的斑竹id
countstars
2004-04-12
打赏
举报
回复
恩,但是,如果比如是版主
只对于特定的版
栏目ID 组ID 操作
栏目1 会员 阅读
栏目1 版主 阅读&编辑
栏目2 会员 阅读&发表
栏目2 版主 阅读&发表&编辑
是不是每个版主都要对相应的栏目进行设置权限?每一个会员X每一个栏目,那就是 n*m 种可能的分配的.
IvanQi
2004-04-11
打赏
举报
回复
gz
countstars
2004-04-11
打赏
举报
回复
Up,有没有对此有研究的朋友出来说说多分类权限设计?看了下 Windows 的,要使添加一个组,就得在这个类表上增加一个字段,比较麻烦,对于 MySQL 还好, 对于其他数据库来说就有局限性了
加载更多回复(9)
WanFangAi论文写作提供选题、文献检索、写作助手等功能,支持自动生成论文大纲,并且可以生成完整的论文初稿,附带PPT、开题报告、任务书、参考文献等
刚开始看了一些文献,
脑子
里面有了个大概印象,过几天想看它的时候,完全忘记是那篇文章了,因为看的文献太多了
乱
了。我是直接在表格中整理,按照文章题目,主要内容,文献综述写作手法,可借鉴地方,主要结论等等。...
《SQL视频第一阶段总结》
这个视频一共13章43集,看完第一遍的时候,感觉真的是“囫囵吞枣”那样直接把它装到了自己的
脑子
里,消化吸收成养分的知识真的是少的可怜,虽然觉得它没有《陈伟VB》视频那么难,但是
脑子
处于“混
乱
”状态,不能从...
51c大模型~合集172
自己的原文哦~ https://blog.51cto.com/whaosoft/14133005本文只做学术分享,如有侵权,联系删文,自动驾驶课程学习与技术交流群事宜,也欢迎添加小助理微信AIDriver004做进一步咨询DeepSeek V3.1和V3相比,到底有...
四.版本回退
当然了,在实际工作中,我们
脑子
里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用 git log 命令查看: $ git ...
系统管理员的容器时代之殇
这篇吐槽是关于容器、预构建虚拟机镜像的,它们真是令人难以置信的混
乱
,它们的
脑子
里面就根本没有“可信”和“升级”的概念。 举个 Hadoop 的例子,似乎就没有人知道如何从头构建一份 Hadoop,它那令人头昏眼花的....
基础编程
21,891
社区成员
140,342
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章