这两天看了一下RABC的权限管理处理,梳理了一下订单功能的表创建,界面,功能分析。
目录
RABC
RBAC0模型
那么对于RABC模型我们怎么创建数据库表?
订单模块的梳理
RABC
RABC说的是在用户和权限之间多一个角色,用户与角色的关系可以是一对多,也可以是多对多,角色与权限之间的关系是一对多。
RABC的角色的加入的好处
1.直接给用户分配权限,只是直接给用户分配权限,少了一层关系,扩展性弱了许多。
2.对于批量的用户权限调整,只需调整用户关联的角色权限,无需对每一个用户都进行权限调整,既大幅提升权限调整的效率,又降低了漏调权限的概率。
RBAC模型可以分为:RBAC0、RBAC1、RBAC2、RBAC3 四种。现阶段我们用到的是RABC0,也就是最简单的。
RBAC0模型
最简单的用户、角色、权限模型。这里面又包含了2种:
- 用户和角色是多对一关系,即:一个用户只充当一种角色,一种角色可以有多个用户担当。
- 用户和角色是多对多关系,即:一个用户可同时充当多种角色,一种角色可以有多个用户担当。
什么时候该使用多对一的权限体系,什么时候又该使用多对多的权限体系呢?
如果系统功能比较单一,使用人员较少,岗位权限相对清晰且确保不会出现兼岗的情况,此时可以考虑用多对一的权限体系。其余情况尽量使用多对多的权限体系,保证系统的可扩展性。
那么对于RABC模型我们怎么创建数据库表?
这个数据库表的创建是把权限分成了:页面权限、操作权限和数据权限三个模块的处理。
订单模块的梳理
1.数据库表的创建,为了保证订单消息静态化,我设置了两个表来保存订单消息,一个表示订单表,一个表是订单详情表
2.下单情况分析
(1) 下单时加一个同步锁(防止同时下单,导致库存不够)。
(2)判断库存,没有库存就直接提示。
(3)动态生成订单号。
(4)利用redis保存订单,下单10分钟后未支付就判断为订单超时,删除订单。
(5)把重要的订单消息返回数据库保存。
(6)减少库存。