向小F等提问:如何处理权限模块建表的问题

就是just4 2010-06-08 10:50:26
向小F等提问:如何处理权限模块建表的问题(注意以下说的是asp.net+mssql平台)

系统开发中最麻烦的就是权限模块该如何处理的问题,比如以下用户权限截图:


根据图大致推算可能有几个对象,即:角户user -- 角色role(用户组usergroup) -- 导航菜单menu -- 功能和操作function&operation -- 权限power,这里有几个问题需要分析:

一是用户与角色是什么关系,如是多多关系,就需要"用户-角色关系表(URRelation)",如是多对一关系就需要在user表中添加roleid字段

二是角色的权限和用户的权限到底是什么关系,简单处理就是直接给用户一个角色,根据角色的权限来判断用户的权限;复杂处理就是用户有单独的权限,角色的权限只是用户权限的一个模板,也就是"角色权限(rolepower)表"要生成"用户权限(userpower)表",这里可能存在的问题在于rolepower表重新修改后是否要重置userpower表

三是菜单和功能之间是什么关系,按常理是一个页面有多个功能,直接合并功能到菜单中是不行的,因为字段不同,要么直接加"菜单-功能(menu-function)表"进行关联,要么功能表中添加menuid字段,当然还可以直接把菜单和功能分做两个东西来看待

四是功能到底该如何建表,是否由"对象-操作",比如"订单-新增"来建表,还是直接"新增订单"就一个功能,如是前者做法又很不同,还需要对象和操作表,功能表只是一个关系

五是权限这东西到底如何做好,除了授权操作外,还有就是可见性如何弄,不知道一个页面从点击页面到加载页到显示按钮到点击按钮到提交操作,这等等的流程是如何组织得好

以上仅是本人乱七八糟的思路,想多了,想复杂了(可能没说清楚了),直接网上找不到做得比较好的案例,但见商品软件即是做得挺好,所以先问问谁做过参考下

...全文
161 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
allentc 2011-08-26
  • 打赏
  • 举报
回复
顶~~~~~~~~~~~~我是打酱油的~
就是just4 2010-09-18
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 daxiaraoming 的回复:]
权限分配图如何画
[/Quote]

不就是一个二维图,
DaXiaRaoMing 2010-09-18
  • 打赏
  • 举报
回复
权限分配图如何画
就是just4 2010-06-10
  • 打赏
  • 举报
回复
就是just4 2010-06-09
  • 打赏
  • 举报
回复
大家贴几张E-R图
dla001 2010-06-09
  • 打赏
  • 举报
回复
学习接分 ,多学点没坏处
  • 打赏
  • 举报
回复
小F成了宝了。

我趴在床上不方便,明天给你回复。
逆风向前进 2010-06-08
  • 打赏
  • 举报
回复
学习,指导,拿分!
永生天地 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 just4 的回复:]
像用友里更是复杂:EAP_User、EAP_Group、EAP_UserGroupRelation、EAP_Menu、EAP_MenuTree、EAP_MenuTreeRelation、EAP_BusOperation、EAP_DTO、EAP_ROWAuth等等等,[/Quote]

这个权限也只是基本的设置,不知道他的字段控制以及数据权限做得如何

我做得需要可以控制到不同的用户看到不同的数据,并且要可以设置,这个用户可以看到哪些字段的数据,可以修改的是哪些字段(似乎EAP_DTO、EAP_ROWAuth这两个表有点意思)
永生天地 2010-06-08
  • 打赏
  • 举报
回复
另外,一般对于类似按钮的控制,都是这样做的。

预先设定好系统所有需要的操作(EAP_BusOperation)。

然后,分别针对不同的界面设置不同的操作,当然我是会在(EAP_BusOperation)里设置一个属性,用来表示默认具有的操作,省的每个界面都要去设置一次。这样界面上的按钮设置,只是设置一些比较特别的,如审核之类的。
就是just4 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xys_777 的回复:]
用户与角色的关系一般都是用户的权限会继承角色的权限,但用户依然可以设置单独的权限。
这都是很基本的
[/Quote]

Go and on呢,这些的确是很基本的,本来大致东西是清楚了的,觉得复杂了,想求证,看大家是如何处理的

像用友里更是复杂:EAP_User、EAP_Group、EAP_UserGroupRelation、EAP_Menu、EAP_MenuTree、EAP_MenuTreeRelation、EAP_BusOperation、EAP_DTO、EAP_ROWAuth等等等,就这些就晕晕晕晕晕晕的了,
dawugui 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 just4 的回复:]
引用 6 楼 dawugui 的回复:
再仔细看了看,确实是个ERP或进销存管理系统.
这个需要知道asp.net开发语言才行,建议你去asp.net版问.


不用去问这个的,asp.net偏向于程序开发,我想问的是数据库建模的问题,
[/Quote]
无碍乎就是个权限表,加些字段,做些标记而已.
具体的情况很难说得清楚.
所以还是让你去下个ERP系统,看人家是怎么设置的?
永生天地 2010-06-08
  • 打赏
  • 举报
回复
而进一步的权限,就可以是角色之间的上下级,数据的状态相关等等
htl258_Tony 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xys_777 的回复:]
这里的权限的控制,基本上我都做过。

权限:分为功能权限与数据权限

功能权限一般用于控制菜单、按钮是否显示(visible)、是否可用(enable)

数据权限一般用于控制字段(select)、数据行(where)是否显示

用户与角色的关系一般都是用户的权限会继承角色的权限,但用户依然可以设置单独的权限。

这都是很基本的
[/Quote]
看好永生
就是just4 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dawugui 的回复:]
再仔细看了看,确实是个ERP或进销存管理系统.
这个需要知道asp.net开发语言才行,建议你去asp.net版问.
[/Quote]

不用去问这个的,asp.net偏向于程序开发,我想问的是数据库建模的问题,
-狙击手- 2010-06-08
  • 打赏
  • 举报
回复
多对多,权限可以覆盖
sql_jj 2010-06-08
  • 打赏
  • 举报
回复
xuexi
永生天地 2010-06-08
  • 打赏
  • 举报
回复
这里的权限的控制,基本上我都做过。

权限:分为功能权限与数据权限

功能权限一般用于控制菜单、按钮是否显示(visible)、是否可用(enable)

数据权限一般用于控制字段(select)、数据行(where)是否显示

用户与角色的关系一般都是用户的权限会继承角色的权限,但用户依然可以设置单独的权限。

这都是很基本的
就是just4 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 htl258 的回复:]
我看来看去也像ERP软件的权限管理。
[/Quote]

不是像,而是根本就是的,因为开发项目需要权限管理模块,以前的项目都做得很粗的,只管菜单一级的可视化权限有,如今想做功能一级(对于asp.net项目就是页面上的按钮)的权限管理,本来还有数据一级的权限的

可惜网上就没有一个比较好一点的案例(指的是asp.net案例)

以上截图就是用友公司的B/S版ERP系统(asp.net平台)
dawugui 2010-06-08
  • 打赏
  • 举报
回复
再仔细看了看,确实是个ERP或进销存管理系统.

这个需要知道asp.net开发语言才行,建议你去asp.net版问.
加载更多回复(5)
本课程为Django第八季课程:用户权限管理     本季课程主要用户登录后权限管理,内容包含:用户权限管理的总体介绍和分析、RBAC的介绍、角色管理、用户加入角色、xmselect选择框的使用、菜单管理、权限条目的管理、权限的树状结构的呈现、为角色分配权限、用户登录后构建权限的列表、在中间件中完善权限的验证、用户登录后构建侧边栏菜单的数据、登录后自动生成侧边栏的树状结构、templatetags的使用等等内容    本案例完整的演示了项目实现过程,虽然不复杂,但涉及的内容非常多,特别是前后端交互的时候,有诸多的坑等着你去踩,好在王老师全程代码呈现,带着大家一起填坑,大大提高学习效率的同时,也培养了大家良好的代码习惯,希望大家一起跟着王进老师学习Python开发。  Django第九季课程课程预告:Web项目发布到公有云  课程目标:本系列课程是从零基础开始并深入讲解Django,最终学会使用Django框架开发企业级的项目。课程知识点详细,项目实战贴近企业需求。本系列课程除了非常详细的讲解Django框架本身的知识点以外,还讲解了web开发中所需要用到的技术,学完本系列课程后,您将独立做出一个具有后台管理系统,并且前端非常优美实用的网站。对于从事一份Python Web开发相关的工作简直轻而易举。 项目展示:  

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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