先说说我的想法吧
用户表
create table UserInfo --用户表
(
PKID int identity(1,1) primary key,
userName  nvarchar(20)    not null, --用户名
userPwd varchar(32)   not null, --密码 
Email varchar(30), --e-mail
pwdQuestion nvarchar(50), --密码提示问题
pwdAnswer nvarchar(50), --问题答案 
roleID int  foreign key references Role(PKID)  not null, --角色ID

)
角色表create table Role  --角色表
(
PKID int identity(1,1) primary key ,
RoleName nvarchar(30) not null, --角色名
RoleStyle varchar(30) not null, --角色名显示的CSS样式
SystemRole bit  not null default 0, --是否是系统组,1的话不能删除该角色
Re nvarchar(200), --说明
RolePic nvarchar(100), --角色头 像 AddTime DateTime default getDate()
)
再跟一个权限表
Create table RolePower --角色权限表
(
RoleID int primary key,
canAddArticle bit default 0, --添加文章
canDeleteArticle bit default 0 ,--删除
--等等其他操作

)感觉这样做不是太好如果要加一个操作就要改数据库结构了想把Power表做成一个xml文件,像
<Role id="1">
   <canAddArticle>true</canAddArticle>
.....
</Role>
<Role id="2">
   <canAddArticle>true</canAddArticle>
.....
</Role>这样的格式,可以实现定制操作感觉这样子XML文件比较脆弱,一但给人手动修改后很可能出错,而且XML操作起来也比较麻烦还想问一下如果系统里面加了分类管理员,应该怎么处理好角色和分类管理员之间的关系不知道各位做权限的时候是怎么做的,感激不尽!

解决方案 »

  1.   

    谢谢大家的意见,顺便再问个问题大家做数据库的时候用foreign key约束吗?感觉那个如果加起来,要删个东西都很难。如果加的朋友是直接删数据还是加一个字段,是否可用,如果不可用就设为0表示删除呢?
      

  2.   

    复杂点可以建 User用户表,Role角色表,Model模块表,Act行为表这几个表
    User和Role关联,Model和Act关联,再Role对应某个Model以及这个Model下的某几个Act