第一篇:无角牛MVC通用后台数据库设计

时间:2014-07-26 17:00:32   收藏:0   阅读:315

无角牛MVC通用后台

第一篇:无角牛MVC通用后台数据库设计

第二篇:无角牛MVC通用后台菜单管理

第三篇:无角牛MVC通用后台权限角色分配

第四篇:无角牛MVC通用后台权限用户分配

第五篇:无角牛MVC通用后台缓存

第六篇:无角牛MVC通用后台批量导入方案

第七篇:无角牛MVC通用后台导出

第八篇:无角牛MVC通用后台一些注意事项

第九篇:无角牛MVC通用后台源码1.0放送

 原文链接:http://www.cnblogs.com/wujiaoniu/p/3870131.html

表:Roles(角色表)

序号

字段名

类型

长度

精度

小数位数

默认值

允许空

主键

说明

1

ID

int

4

 

 

 

 

√

 

2

RoleName

nvarchar

50

 

 

 

 

 

角色名

 

表:Users(用户表)

序号

字段名

类型

长度

精度

小数位数

默认值

允许空

主键

说明

1

ID

int

4

 

 

 

 

√

 

2

RoleID

int

4

 

 

 

√

 

用户所属角色

3

UserName

nvarchar

50

 

 

 

√

 

用户名

4

Password

nvarchar

50

 

 

 

√

 

密码

5

Name

nvarchar

50

 

 

 

√

 

用户姓名

6

Mobile

nvarchar

50

 

 

 

√

 

手机号

7

Email

nvarchar

100

 

 

 

√

 

邮箱

8

Phone

nvarchar

50

 

 

 

√

 

电话

9

UProvince

nvarchar

50

 

 

 

√

 

省份

10

UCity

nvarchar

50

 

 

 

√

 

城市

11

UDistrict

nvarchar

50

 

 

 

√

 

区县

12

Fax

nvarchar

50

 

 

 

√

 

传真

13

Address

nvarchar

50

 

 

 

√

 

地址

14

PostCode

nvarchar

50

 

 

 

√

 

邮编

15

Flag

int

4

 

 

((1))

√

 

1=有效 0=删除

16

Regdate

datetime

8

 

 

(getdate())

√

 

 

17

Modify

datetime

8

 

 

 

√

 

 

 

表:Controls(控件常量表)

序号

字段名

类型

长度

精度

小数位数

默认值

允许空

主键

说明

1

ControlID

int

4

 

 

 

 

√

控件命名规则表ID(全局使用,参考命名规则)

2

Description

nvarchar

50

 

 

 

√

 

描述

3

ControlName

nvarchar

50

 

 

 

√

 

控件名称,页面中的控件参考命名

 

表:Functions(菜单表)

序号

字段名

类型

长度

精度

小数位数

默认值

允许空

主键

说明

1

FunctionID

int

4

 

 

 

 

√

菜单目录表ID

2

FunctionName

nvarchar

50

 

 

 

√

 

菜单名称

3

Controller

nvarchar

50

 

 

 

√

 

链接地址

4

Action

nvarchar

50

 

 

 

√

 

 

5

ParentID

int

4

 

 

 

√

 

上级菜单ID,顶层菜单为1

6

Orders

int

4

 

 

 

√

 

排序字段

7

IsDisplay

bit

1

 

 

((1))

√

 

 

 

表:FunctionControls(页面控件注册表)

序号

字段名

类型

长度

精度

小数位数

默认值

允许空

主键

说明

1

ID

int

4

 

 

 

 

√

页面控件权限注册表ID,页面中的所有权限需要添加在此表

2

FunctionID

int

4

 

 

 

√

 

菜单项ID

3

ControlID

int

4

 

 

 

√

 

控制ID,对应Controls表ID

4

ControlName

varchar

50

 

 

 

√

 

显示名称

 

表:FunctionAccessControls(权限分配记录表)

序号

字段名

类型

长度

精度

小数位数

默认值

允许空

主键

说明

1

ID

uniqueidentifier

16

 

 

(newid())

 

√

权限配置表ID

2

FunctionID

int

4

 

 

 

√

 

菜单项ID

3

RoleID

int

4

 

 

 

√

 

角色ID

4

UserID

int

4

 

 

 

√

 

用户ID

5

Flag

int

4

 

 

((0))

√

 

0基本功能 1 扩展功能 2缩减功能

6

Controls

nvarchar

50

 

 

 

√

 

control的集合

 

Controls表为一个常量表供后面使用,其内容如下

bubuko.com,布布扣

为了演示咱初始化一些数据到表中。

Roles表

bubuko.com,布布扣

Users表

bubuko.com,布布扣

Functions表

bubuko.com,布布扣

FunctionControls表

bubuko.com,布布扣

FunctionAccessControls表

bubuko.com,布布扣

 

分配权限的过程分两步:

第一步:将每个页面(function)中的控件注册到FunctionControls表,这一步要参考Controls常量表。

第二步:将角色所具有的访问权限,分配到FunctionAccessControls表中。此类记录UserID=null,Flag=0,Controls为逗号分隔的ControlsID.

形如:bubuko.com,布布扣

一个角色可以有多个用户,那么分配完角色权限后,其下的用户默认也就具有了相应的权限。

接下来若需要用户个性化分配权限则按用户插入相应权限记录即可。此类记录UserId不为空,比如1、2、3,Flag可能会有两种情况:第一种1扩展角色分配时不具有的权限,第二种2缩减角色分配时具有的权限,也就是使此用户不能访问此菜单。

形如:

bubuko.com,布布扣

按角色、单用户分配的权限共存一张表中如果管理呢?读取时需要做如下处理:首先按Role读取出分配数据,再按角色ID及用户ID读取出用户分配数据,以角色数据为基数,分别按用户数据中的Flag值过滤出应该增加或减少的数据修改基数,最后就是这个用户可以实际访问的菜单。

上面只是说的菜单,那么菜单内控件如何控制呢?用户不能访问菜单也就不存在此问题了。好,角色数据中有此菜单的权限配置,用户数据中也有此菜单的权限配置,那么在上面修改基数数据时使用户Controls覆盖角色Controls字段即可。

 

 

第一篇:无角牛MVC通用后台数据库设计,布布扣,bubuko.com

评论(0)
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!