权限问题如何解决?

zb1119 2003-09-15 08:57:04
库里面有人员表,有部门表,有权限表。页面上有财务部门,微机室,学生科等部门。
现在要求人员张三能在财务部门增删改,并且能浏览微机室,学生科等部门。
李四学生科增删改,能浏览微机室并增添记录,财务部门只能浏览。
现在表还没有成型,请教大家应该怎么样建表可操作可维护性最强。

如果能给出实用的案例的链接也可以给分。
...全文
36 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zb1119 2003-09-29
  • 打赏
  • 举报
回复
虽然还是没解决,但还是谢谢永远的草莓地
chanet 2003-09-17
  • 打赏
  • 举报
回复
以 部门做判断就方便啦... :)
Strawberry79 2003-09-17
  • 打赏
  • 举报
回复
前台判断权限的时候,把某个人在某个部门的权限字段取出来,然后判断以逗号分隔的权限有几个都是什么,是否包括当前所要的权限.
如当前人员1要访问部门1进行修改操作,那么就把人员1在部门1的权限从表中选出来,选出来的字段应该是一个串,然后前台去判断这个串里是否包含"修改"这个权限.前台对字符串的操作可以放在BEAN里,这样做应该可以实现!
zb1119 2003-09-16
  • 打赏
  • 举报
回复
这样的确可以,但是正如你所说的,要加入判断,可在界面开发的同事却说无法判断成功。
我们用的是 jsp+oracle,请问你说的怎么具体的实现?最好详尽一点。有例子最好了。
zb1119 2003-09-15
  • 打赏
  • 举报
回复
可是这么做下来,建立一个对应关系表 ,那么这个表应该非常庞大,如果人员记录多的话,那么这个中间表的记录就要非常多了,这样可行吗?
Strawberry79 2003-09-15
  • 打赏
  • 举报
回复
人员表(人员编号,姓名,性别...) 主键:编号
部门表(部门编号,名称,...) 主键:部门编号
权限表(权限编号,中文名,....) 主键:编号
以上为基本元素表,可单独维护,中文名可随便改,只要编号唯一即可确定一条记录

人员,部门,权限的对应关系表(人员编号,部门编号,权限编号)
给人员设置权限时维护该表

再写一个触发器,如若基本表中有元素被删除,则相应删除对应关系表包含该项的记录

Strawberry79 2003-09-15
  • 打赏
  • 举报
回复
这个表里的确冗余数据很多,但满足3NF,这里要解决是两个多对多(人对部门、部门对权限)的问题,冗余肯定是避免不了,只能尽量少一点了,要不这样:

人员表(人员编号,部门编号,权限...) 主键:编号
部门表(部门编号,名称,...) 主键:部门编号
权限表(权限编号,中文名,....) 主键:编号

人员表的结构会如下:

人员编号 部门编号 权限
1 1 1,2,3
1 2 1,3

把对应关系表去掉,这样做你在程序中要判断一下权限,这样记录会少一些,就是操作起来麻烦点
Strawberry79 2003-09-15
  • 打赏
  • 举报
回复
这个表里的确冗余数据很多,但满足3NF,这里要解决是两个多对多(人对部门、部门对权限)的问题,冗余肯定是避免不了,只能尽量少一点了,要不这样:

人员表(人员编号,部门编号,权限...) 主键:编号
部门表(部门编号,名称,...) 主键:部门编号
权限表(权限编号,中文名,....) 主键:编号

人员表的结构会如下:

人员编号 部门编号 权限
1 1 1,2,3
1 2 1,3

把对应关系表去掉,这样做你在程序中要判断一下权限,这样记录会少一些,就是操作起来麻烦点

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧