专栏首页陶士涵的菜地[PHP] RBAC权限与审批流的简单数据库构想

[PHP] RBAC权限与审批流的简单数据库构想

权限部分:功能权限+数据权限
控制权限是界面按钮菜单的权限控制,数据权限是数据范围的控制
role(角色)
-----------------
|id             |
-----------------
|name           |
-----------------

user(用户)
-----------------
|id             |
-----------------
|name           |
-----------------

node(菜单按钮节点)
-----------------
|id             |
-----------------
|name           |
-----------------
|module_name    |
-----------------
|action_name    |
-----------------
|pid            |
-----------------
|sort           |
-----------------
user_role(用户-角色表,功能权限)
-----------------
|id             |
-----------------
|user_id        |
-----------------
|role_id        |
-----------------
node_role(节点-角色表,功能权限)
-----------------
|id             |
-----------------
|role_id        |
-----------------
|node_id        |
-----------------

user_channel(用户-频道表,数据范围权限,多对多)
-----------------
|id             |
-----------------
|user_id        |
-----------------
|channel_id     |
-----------------

flow(流程设置表,频道对应的多级审批角色,一对多)
-----------------
|id             |
-----------------
|channel_id     |
-----------------
|role_id        |
-----------------
|level          |
-----------------

process(审核流程表,需分表)
-----------------
|id             |
-----------------
|document_id    |
-----------------
|author_id      |
-----------------
|pre_checkerid  |
-----------------
|checker_id     |
-----------------
|next_role_id   |
-----------------
|check_status   |
-----------------

审批流类似一个链表

审批流设置表可以配置某个频道的审批层级

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [android] 获取系统的联系人信息

    内容提供是实质上是个接口,后门,他给别人提供数据,系统联系人是个比较复杂的内容通过者。

    陶士涵
  • [android] 保存联系人到系统通讯录

    获取ContentResolver对象,通过getContentResolver()方法

    陶士涵
  • [MongoDB]MongoDB的ObjectId组成

    一、ObjectId的组成 首先通过终端命令行,向mongodb的collection中插入一条不带“_id”的记录。然后,通过查询刚插入的数据,发现自动生成了...

    陶士涵
  • 分布式系统中生成全局ID的总结与思考

    世间万物,都有自己唯一的标识,比如人,每个人都有自己的指纹(白夜追凶给我科普的,同卵双胞胎DNA一样,但指纹不一样)。又如中国人,每个中国人有自己的身份证。对于...

    用户1263954
  • 面试官问:MySQL的自增ID用完了,怎么办?

    可以发现 AUTO_INCREMENT 已经自动变成2,这离用完还有很远,我们可以算下最大当前声明的自增ID最大是多少,由于这里定义的是 intunsigned...

    用户4143945
  • 面试官问:MySQL的自增ID用完了,怎么办?

    可以发现 AUTO_INCREMENT 已经自动变成2,这离用完还有很远,我们可以算下最大当前声明的自增ID最大是多少,由于这里定义的是 intunsigned...

    xcbeyond
  • 通过错误的sql来测试推理sql的解析过程(二) (r8笔记第7天)

    之前总结过一篇 通过错误的sql来测试推理sql的解析过程 也算是以毒攻毒,当然也分析出来一些有意思的内容来,让原本看起来枯燥的内容有了更多的实践意义。 ...

    jeanron100
  • uni-app弹窗多选样式分享

    薛定喵君
  • 一次搞懂滚动加载

    分页加载通常适用于客户端,通常是为了防止一次返回导致客户端崩溃,所以采用下拉加载更多的方式,为了防止数据重复的现象,数据传递建议使用唯一标识id。 普...

    用户5166556
  • Feign的使用及自定义配置

    是一个声明式的Web服务客户端。它支持Feign本身的注解、JAX-RS注解以及SpringMVC的注解。Spring Cloud集成Ribbon和Eureka...

    Java学习录

扫码关注云+社区

领取腾讯云代金券