权限设计中的数据灵活存储设计策略参考[以不变应万变]

简介:

趁博客园好用抓紧发表一篇文章,我们从3个方面来解决权限的数据存储问题;权限的定义、操作权限的存储、数据集权限的存储问题等3个方面来考量。

1:权限定义表:

首先权限的定义需要一个表来存储,这样定义权限相对灵活方便无限扩展,前几篇文章里也详细阐述这方面设计的文章,有兴趣的可以参考。


2:操作权限的存储:


用户à拥有某些操作权限

角色à拥有某些操作权限

……

数据都存储在一个物理表,可以用视图的方式映射出用户的操作权限、角色的操作权限。

用户操作权限的存储视图

角色操作权限的存储视图

这是数据表中的真实数据,是以分类的方式存储了权限数据,例如UserRole是其中的分类。分类+主键 == 定义某个具体的实体,例如用户、角色等等。



3:数据集权限的存储:也称为范围权限、记录权限。


用户à对某些用户à拥有某个操作权限

角色à对某些用户à拥有某个操作权限

用户à对某些菜单à拥有某个操作权限

角色à对某些菜单à拥有某个操作权限

   ……

  同样也是用了分类的思想,存储了各种数据库权限数据。这样设计的好处是,权限的逻辑比较复杂、扩展了也没多大必要修改表结构,以不变应对万变。缺点就是不够直观,不太好理解,有些绕。




本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/1201485,如需转载请自行联系原作者

相关文章
|
2月前
|
存储 运维 Kubernetes
K8s业务迁移最佳实践: 灵活管理资源备份与调整策略,实现高效简便的应用恢复
在当今快速变化的云原生领域,Kubernetes(K8s)集群的运维面临着诸多挑战,其中灾备与业务迁移尤为关键。ACK备份中心支持丰富的资源调整策略,在数据恢复阶段即可自动适配目标集群环境,确保业务无缝重启。
|
6月前
|
存储 数据格式 运维
开发与运维C++问题之更改数据模型为通用数据结构如何解决
开发与运维C++问题之更改数据模型为通用数据结构如何解决
32 1
|
7月前
|
存储 安全 数据库
实现精细的权限控制系统的方法与实践
实现精细的权限控制系统的方法与实践
|
人工智能 数据挖掘 API
马丁策略量化交易系统开发(逻辑特性)| 马丁策略量化交易源码参考
马丁策略,全名马丁格尔策略,倍投原理,是在亏损之后进行加倍下注,直到连本带利赚回本金为止。随着下注的连续失败,追加的筹码也在成倍增加,只要赢一次,就可以赢回所有的本金和利润,简单来说马丁策略就是输掉后加倍投资的交易策略。量化是在用户授权交易所账户API的前提下,选择交易策略和主流货币,启用AI智能数据分析引擎帮助用户自动匹配“大概率”交易策略,根据数据模型自动分析市场关键点,通过毫秒级闪电交易,向交易所发出买入卖出指令,大幅提高账户交易速率与频率。
|
数据安全/隐私保护
通用数据级别权限的框架设计与实现
个人花了不到2天时间,写了一个通用数据级别权限的框架设计与实现。 欢迎提意见及评论。有空请打赏! 通用数据级别权限的框架设计与实现(1)-相关业务场景的分析 通用数据级别权限的框架设计与实现(2)-数据权限的准备工作 通用数据级别权限的框架设计与实现(3)-数据列表的权限过滤 通用数据级别权限的框架设计与实现(4)-单条记录的权限控制 通用数据级别权限的框架设计与实现(5)-总结与延伸思考 个人代码已经完成,如需要请打赏后通知我。
2348 0
|
数据库
【自然框架】之通用权限:数据库设计的几种使用方式
      上次《【自然框架】之通用权限:用PowerDesigner重新设计了一下数据库,有ER图和表关系图 》里说了一大堆的表,好多人说太复杂了,做到权限到模块就可以了。       这个嘛,我也没有说所有的表都要一起使用呀。
1212 0
|
数据库
【自然框架】之通用权限(二):人员表组
      继续,这是第二章了。本来想在这一章里面介绍三个表组来着,但是我有点写不好的感觉,还是多分几章吧,这一章就只介绍人员表组。第二章到第五章主要是介绍表结构。我是习惯使用Excel来设计表,一开始的时候只能记录表名、字段名、字段类型、字段说明等信息,但是一直没能找到如何使用Excel来体现出来表之间的关系。
1113 0
|
SQL
【自然框架】 之 资源角色——列表过滤方案(思路篇)
名词解释 1、资源角色,我的理解就是资源过滤方案 + 角色。就是把资源过滤方案和角色结合在一起的东东。2、资源:这里的资源指的是关系数据库里的记录。3、资源过滤:就是按照一定的条件提取数据库里的记录。
905 0
|
关系型数据库 数据库
通用数据级别权限的框架设计与实现(2)-数据权限的准备工作
查看上篇文章通用数据级别权限的框架设计(1)-相关业务场景的分析",我们要继续做一些准备工作。 我们先要设置当前用户信息的类 /** * @description: 用户对象 * @author: starmark * @create: 2...
878 0