用户可以申请店面,一个用户可以拥有多个店面,不同的店面可以申请不同的功能,不同的功能拥有不同的权限,申请的店面上还可以注册会员,同时还可以给这些会员分配不同的前台,后台权限,这个权限模型如何设计?Tips:目前市面上的多用户开源程序,都是固化了店面类型,比如我给所有店面使用的功能数为10,初级店面拥有5个,中级店面拥有8个,高级店面拥有10个,用户组也是固化了的,比如DX的群组功能中,关于成员的分类固化成群主,副群主,明星会员,普通会员4个组别,这样,也就固化了用户的权限。当某一天某个用户要开一个新的店面,要求的功能数为6个,这个时候就不得不添加一个功能数为6个且功能为用户要求的那6个的店面类别,或者干脆不改,如果用户想在自己店面后台增加一个用户组来专门管理某一功能的时候,这个时候又必须得更改整个系统,所以,我觉得这些都不是太理想,请大侠赐教吧!
本质上,只有两种东西:用户和资源,而用户和资源之间的关系,就是“访问权限”。你说只有“权限和用户”,差不多,表达方式的差异而已,问题不在这儿。问题在于,如果只依照最原始的权限模型,那么“授权”工作将是一个非常繁琐的管理工作,每个用户来了,你都得逐个为他指派哪个资源能访问,哪个资源不能访问。所以,有的系统定义了“组”的概念,有的系统定义了“角色”的概念,其实都是为了简化授权管理工作。因为预先已经定义了若干种“授权组合”,那么对于每个用户来说,给他指派几个预定义的“授权组合”就 OK 了。而楼主的问题,正在于如何定义一种“授权模型”,才能很好地应对那些需求。虚的说了一堆,落实下来,我看还是得先回答 1 楼的那两个问题 :)■□■□■□■□■□■□■□■
□ □
■ 忍以明志 勤以致远 ■
□ □
■□■□■□■□■□■□■□■
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
创建4个表:
1.店面 1个用户 : N个店面
2.功能 1个店面 : N个功能
3.角色(控制权限) 1个角色 : N个用户 , 1个功能 :(可分配给) N个角色
4.用户 (这个就不说了,是Use Case的主体)创建角色是为了更合理的控制用户的行为。往往一个角色可以对应一组功能,单一功能又可以重复分配给多个角色。