向小F等提问:如何处理权限模块建表的问题(
注意以下说的是asp.net+mssql平台)
系统开发中最麻烦的就是权限模块该如何处理的问题,比如以下用户权限截图:
根据图大致推算可能有几个对象,即:角户user -- 角色role(用户组usergroup) -- 导航菜单menu -- 功能和操作function&operation -- 权限power,这里有几个问题需要分析:
一是用户与角色是什么关系,如是多多关系,就需要"用户-角色关系表(URRelation)",如是多对一关系就需要在user表中添加roleid字段
二是角色的权限和用户的权限到底是什么关系,简单处理就是直接给用户一个角色,根据角色的权限来判断用户的权限;复杂处理就是用户有单独的权限,角色的权限只是用户权限的一个模板,也就是"角色权限(rolepower)表"要生成"用户权限(userpower)表",这里可能存在的问题在于rolepower表重新修改后是否要重置userpower表
三是菜单和功能之间是什么关系,按常理是一个页面有多个功能,直接合并功能到菜单中是不行的,因为字段不同,要么直接加"菜单-功能(menu-function)表"进行关联,要么功能表中添加menuid字段,当然还可以直接把菜单和功能分做两个东西来看待
四是功能到底该如何建表,是否由"对象-操作",比如"订单-新增"来建表,还是直接"新增订单"就一个功能,如是前者做法又很不同,还需要对象和操作表,功能表只是一个关系
五是权限这东西到底如何做好,除了授权操作外,还有就是可见性如何弄,不知道一个页面从点击页面到加载页到显示按钮到点击按钮到提交操作,这等等的流程是如何组织得好
以上仅是本人乱七八糟的思路,想多了,想复杂了(可能没说清楚了),直接网上找不到做得比较好的案例,但见商品软件即是做得挺好,所以先问问谁做过参考下