|
|
 |
 |
|
|
 |
|
权限设计的探讨
|
|
|
|
编辑:华夏媒体 作者:未知 来源:网络 时间:2006-07-29 总浏览量:2432 |
|
文字大小:[ 大 中 小 ]
文字颜色: 双击滚屏/单击停止 |
|
[上一页] [1] [2] [3] [4] [下一页]
|
2009 Popeye 1+2+4+8=15 ***** 上面系统定义的默认权限肯定是不够系统使用的,那么还有一些权限(例如:报关系统中的“计算差异表”“制造申报单”等权限,就由系统再定义),其实不用太担心会不够用的,因为在一个Form中不可能会出现所有权限情况,所以,系统自定义的权限掩码可重复使用在不同的表单中。***** 建议不要把角色和用户分开两张表来存储(可参考MS-SQL Server中的sys_users表),因为在后面的权限定义表需要引用这个表的UID(其可为用户或角色,SQL中是使用UID的数值范围来区别用户与角色的,建议也如此。),版主说的角色与用户分开对待权限设置,这点我不赞成。因为角色只不过是一种用户组,其应该享用用户的权限定义范围,在其下属的角色成员(注意角色成员不同于用户或角色哦,其可以为角色也可以为用户)均默认继承其定义的权限,除非角色成员重新指派其上级角色定义的权限字。下面给出我的相关表定义: TUser(用户或角色表) =================== (PK)UID int NOT NULL(主键) Name nvarchar(50) NOT NULL(唯一性约束) FullName nvarchar(100) NULL Description nvarchar(255) NULL MasterNo varchar(25) NULL(注:该字段对应为员工表中的员工编号,通过该字段就可以关联知道该用户或角色所属的员工了,在企业管理系统中很有用啊!) TMember(用户与角色关系表) ========================= (*PK)RoleID int NOT NULL (*PK)UserID int NOT NULL TPermission(用户权限表) ======================= (*PK)FormID int NOT NULL(表示系统中各个模块或表单的唯一编号) (*PK)UserID int NOT NULL(用户或角色编号) Protect bit NOT NULL(1:表示显示授予权限;0:表示显示拒绝权限) Permission int NOT NULL(权限掩码和) ***** 如果哪位兄弟有意研究权限与流程定制方面的东东,相信找偶是没错的了!!!呵呵~~~ 老板,给分啊~~~~~×××××
========================================== 以上的方法与我做的项目的方法基本一致,现摘一部分的表结构,以供大家参考 create table t_workelement /*工作元素表*/ ( code varchar(20) not null, /*元素的代码,唯一*/ name varchar(50) not null UNIQUE,/*元素的名称,唯一*/ type int not null, /*类型 0-单据操作 1-报表操作 2-功能操作*/ bcode varchar(20) null, /*对应操作的单据\报表\功能的代码*/ style int null, /*单据:类型 0-查看 1-新增 2-修改 3-删除*/ /*报表:无*/ /*功能:无*/ term ntext null, /*单据:查看\修改\删除时要符合的条件,如"{$承揽合同.编号}=12\n{$承揽合同.名称}<>’afd’"*/ primary key(code) ) go drop table t_role go create table t_role /*角色表*/ ( name varchar(30) not null, category varchar(50) null, remark varchar(100) null, primary key(name) ) go drop table t_roleelement go create table t_roleelement /*角色元素操作表*/
|
|
[上一页] [1] [2] [3] [4] [下一页]
|
|
|
打印 收藏 关闭 至顶部 |
|
 |
|