系统权限表结构设计
/** 用户表 **/
create table USERINFO
(
ID INTEGER not null, -- 主键
LOGNAME VARCHAR2(32) not null, -- 登陆名
PASSWORD VARCHAR2(64) not null, -- 密码(需md5加密)
REALNAME VARCHAR2(64) not null, -- 真实姓名
GENDER CHAR(1) not null, -- 性别
TELEPHONE VARCHAR2(16), -- 电话
MOBILEPHONE VARCHAR2(16), -- 手机
EMAIL VARCHAR2(64), -- 邮箱
OFFICE VARCHAR2(128), -- 工作单位
F_DEPT_ID INTEGER not null, -- 部门ID
ADDRESS VARCHAR2(255), -- 家庭住址
POSTCODE CHAR(6), -- 邮编
INUSE INTEGER not null, -- 是否使用
LICENSECODE VARCHAR2(18), -- 验证码(如果是需要邮件验证用户需此字段)
ISNETUSER INTEGER, -- 用否是互边网用户
)
<script type="text/javascript"></script> /** 功能表 **/
create table LIMFUNCTION
(
ID NUMBER not null, -- 主键
NAME VARCHAR2(64) not null, -- 功能英文名称
CNAME VARCHAR2(32) not null, -- 功能中文名称
LINKURL VARCHAR2(128), -- 连接路径(可支持struts等多框架路径的url)
DISCRIPT VARCHAR2(128), -- 功能描述
IMGURL VARCHAR2(128), -- 图片名称或图片路径
FUNCLEVEL NUMBER, -- 功能等级
PARENTID NUMBER, -- 父功能ID
INITPOS NUMBER, -- 初始化位置
ATTR NUMBER, -- 属性
Isworkflow NUMBER -- 是否工作流 (以便日后对工作流定制及可视化的扩展)
);
/** 角色表 **/
create table AUTHROLE
(
ID INTEGER not null, -- 主键
NAME VARCHAR2(32) not null, -- 名字
DISCRIPT VARCHAR2(128) not null – 功能描述
)
/** 角色功能表 **/
create table ROLEFUNCTION
(
authRoleID INTEGER not null, -- 角色id
limFunctionID INTEGER not null -- 功能 id
)
/** 用户角色表 **/
create table USERROLE
(
USERID INTEGER not null, -- 用户id
ROLEID INTEGER not null -- 角色 id
)
用户功能入口
Select limFunctionID From ROLEFUNCTION Where authRoleID In (Select RoleID From USERROLE Where UserID=’用户表的id’)
1 用户会话周期问题的解决
用户登陆功能使用servlet技术,不采用任何框架,目的是把用户的信息保存到session当中,如果采用其它框架如struts,可以把当前的session信息附值到
其它框架的session中。就可以保证了用户的会话周期在整个项目中存在。
2 整合其它框架功能模块的定义
在设计功能表时,使用连接路径(可支持struts等多框架路径的url)方式连接到相应的功能模块,就解决不同框架的功能模块过滤功能。
如:
1 struts 路径
/leavemessage.do?p=save&name=$names
2 servlet 路径
/ajaxaction?method=testbacktest
3 系统过滤采用servlet过滤器
判断session的权限