通用权限的思路。带有数据库关系图

写完了就要提交了,想向上传一个图片,IE居然死掉了,白写了,还得重来一遍。郁闷。

    上一篇主要是想说一下大体的思路,就是一个主要的框架,我觉得在做一件事情之前,都需要有一个初略的设计,就是中提的想法,抓住问题的关键点。所以对于权限问题,我觉得需要抓住下面的这四个问题;

    1、我们的软件里面有哪些功能?

    2、哪些人可以访问到哪些功能结点?

    3、访问到了页面后可以做哪些事情?(查询、添加、修改、删除、导出、打印等)

        (原来的说法:详细权限的划分)

    4、在同一个页面里哪些人可以看到那些信息

        (原来的说法:资源的访问权限)

    这是我的个人见解,是通过几个项目总结出来的,如果不全面、或者不正确的话,欢迎大家及时指正,共同努力、共同提高!

    我设计了下面的这几个表,来解决这些问题。这里我只想表示表之间的关联,至于字段我只是写了几个主要的,字段的设计嘛,大家肯定各有各的方式,我想我写出来主要的就可以了。

    我的英文比较差,还是直接用中文吧,这样更直接一些。

    如果看图不太清楚的话,可以到这里下载 visio 格式的文件。http://www.cnblogs.com/jyk/archive/2008/04/25/1170979.html

    先来看第一个问题,[项目—功能结点] 和 [项目—节点拥有的详细权限] 这两个表记录了项目里面有哪些功能结点和详细的功能,

[项目—功能结点]  功能节点,可以通过这个表来呈现左面的功能树。记录打开的页面和相关的信息。

[项目—节点拥有的详细权限] 按钮组,一个功能节点(主要是列表页面)有哪些按钮,比如“添加”按钮,“修改”按钮等。记录按钮的名称、打开的页面和相关的信息。

    这两个表是在设计阶段完成的,程序员可以根据这个来实现功能。

    解决了第一个问题后,第二个问题就好办了,[项目—角色] 和 [角色拥有的功能结点] 来 实现。

[项目—角色]  记录项目里面有哪些角色。

[角色拥有的功能结点] 记录一个角色拥有哪些功能结点,功能结点里面有哪些具体的操作(添加、修改等)

    不知道大家的项目的角色是在什么时候诞生的,是在设计的时候吗?还是程序做好之后由用户自己设计?我的做法是后者。因为客户比我们更清楚需要多少角色,需要什么样的角色,一个角色里有哪些功能更合适。

    我们可以做一个维护程序,让客户自行添加。先在角色表里添加一个角色,然后选择角色可以看到的功能页面,最后选择在这个功能结点里可以做的操作(添加、修改等)。这样一个角色就诞生了。

    角色有了之后,就可以给人员分配角色,或者是往角色里添加人员。这样就解决了哪些人可以访问哪些功能节点的问题。

    其实在设计角色的时候就把第三个问题也搞定了。

    【添加角色的截图】

    操作也是比较方便的,当点击“计划和日志”前面的方框(打对号)的时候会自动展开下面的子结点和子子节点,然后这些节点都会被选中,后面的按钮也会被选中。

当选中“工作日志”的时候,上面的节点和后面的按钮也会被选中。

    上面的信息全部来自数据库,也就是第一个图里的哪些表。

第四个问题还没有更好的解决方法,目前只能在程序里面硬编码。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

个人微信公众号

公众平台就是面向公众的平台。 分为3类: 订阅号 : 发布信息用的,面向个人或企业俗称自媒体(无微信支付), 。 服务号 : 面向企业的公众平台,比如招行等企...

9175
来自专栏文渊之博

使用vs2010生成SQL Server 随机数据

前几天做测试数据,偶然发现vs2010中有一个生成随机数据的功能,记录下来,方便以后使用,确实非常的好用灵活快捷。 为了简单扼要的说明,下面我用一个实例来说明如...

2919
来自专栏流柯技术学院

Jmeter3.0发布,版本更新都更新了什么

Jmeter已发布了3.0,一个大版本的开源测试工具,加入了一些新的特性及软件的改进。

2263
来自专栏木头编程 - moTzxx

微信 {“errcode“: -1000}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

2263
来自专栏好好学习吧

LoadRunner菜鸟入门学习笔记

  11.0 最高ie9( win7 32位+LR11+IE10可用,但win7 64位+LR11+IE10不可用,降至IE9可用),支持firefox3.6、...

8912
来自专栏程序人生

谈谈用户权限系统

登录这事之于一个需要识别用户身份的产品,就仿佛cs101之于computer science。感谢各种语言里各种优秀的登录模块(比如nodejs的passpor...

3034
来自专栏Java成神之路

Java程序员常用工具集

我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了。我想列下我能想到的一个Java程序员会用...

1453
来自专栏云计算教程系列

如何在Ubuntu 18.04上设置时间同步

准确的计时已成为现代软件部署的关键组成部分。无论是确保以正确的顺序记录日志还是正确应用数据库更新,不同步的时间都可能导致错误,数据损坏和其他难以调试的问题。

4.6K0
来自专栏恰童鞋骚年

操作系统核心原理-3.进程原理(上):进程概要

进程管理、内存管理和文件管理是操作系统的三大核心功能,那么什么是进程呢?顾名思义,进程就是进展中的程序,或者说进程是执行中的程序。当一个程序被加载到内存之后就变...

2072
来自专栏北京马哥教育

一篇了解爬虫技术方方面面

原理 传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件...

4599

扫码关注云+社区

领取腾讯云代金券