时隔三月商务系统基本完成四月一号正式上线,这几个月基本是可以用“痛苦并快乐着这几个字来形容”。而本篇文章决定记录一下在这个系统中用到的权限相关问题。
系统给公司内部使用虽然不像网络公司那样数据上千万上亿的数据,但也是有百万级的数据,那么这个数据的控制就显得尤其重要了,数据量的大小决定了你的页面运行速度,甚至有可能超时成为无效页面。另一方面,数据控制,权限设定可控制相关人员的操作权限,使其各司其职,业务处理更加明确分工,提高工作效率,当然这个就属于业务范畴内的,这个在这里就不过多赘述,对于我来说,我更关心的是技术上的问题,优化每个页面的运行速度,更能成为我的奋斗目标。下面介绍此次系统用到的数据控制和权限控制的方法。
经过我们开发小组的讨论,以及顾及到开发框架平台的优势及限制,故而决定用权限表的形式来控制页面数据权限。简单描述为以下几个步骤:
1、建立权限表:PermissionsTable
2、权限表中存入客户外键:BASB001_FK及相关操作人员表外键及其它相关信息
3、那么如何关联呢:所有的表中都会存有客户外键:BASB001_FK 客户表中存有客户主表:BASB001OID
4、最后就通过sql语句来控制数据权限了
SELECT TOP 100 * FROM dbo.ORDA001
JOIN SYS00002D2 ON dbo.ORDA001.BASB001_FK = dbo.SYS00002D2.BASB001_FK
WHERE UCML_User_FK='登陆系统人员主键'
通过以上示例就实现了页面数据的控制,相关人员也只能处理自己相关的数据,如此便实现了数据的控制。
以上是我接触到的一种权限控制方法,以后接触到新的权限数据控制方法再整理总结。