首页 新闻 搜索 专区 学院

动态生成TreeView菜单问题

0
悬赏园豆:100 [已解决问题] 解决于 2012-06-25 10:41

在母版页中有个TreeView菜单,我现在想根据不同的用户显示不同的TreeView菜单,也就是说在添加用户的时候也随之添加了此用户的菜单信息,求个数据库设计,主外键关系请说明白,我用的是SQL Server2005数据库,求大神帮忙,谢谢!

ii  乄筱跃____的主页 ii 乄筱跃____ | 初学一级 | 园豆:6
提问于:2012-06-25 09:00
< >
分享
最佳答案
0

1、建立用户信息表:保存系统用户信息;

2、建立角色信息表:保存系统角色信息;

3、建立用户与角色对应关系表:之所以建立这样的表,是考虑到一个用户可能会对应多个系统角色的情况,如果一对一关系,那么直接在用户表中保存该用户所属角色即可;

4、建立应用菜单表:保存系统所要显示的所有菜单,设计字段可以参考(编号、层次码、名称、描述、执行路径、有效性等);

5、建立角色与应用菜单关系表:建立角色与应用菜单之间的关系,执行那个角色可以看得见那些菜单;

6、根据用户所属角色,通过角色与应用菜单关系表,查询该用户所能够操作的菜单,并根据菜单的层次码,用属性控件进行显示;

 

说明:采用基于角色进行管理的设计方式,用户与角色对应、角色与应用菜单对应,通过用户所属角色获取对应菜单,设计只控制到应用程序,没有精确到增、删、改功能;

收获园豆:50
八戒的师傅 | 小虾三级 |园豆:1472 | 2012-06-25 09:16

有点略懂,我先自己试试,谢谢!

ii 乄筱跃____ | 园豆:6 (初学一级) | 2012-06-25 09:28

@ii 乄筱跃____: (-_-)

八戒的师傅 | 园豆:1472 (小虾三级) | 2012-06-26 12:57
其他回答(2)
0

一个用户表,一个承载Treeview菜单信息的表。用户表做主表。在添加用户表主键的时候,同时把这个值添加作为Treeview菜单信息表的外键。

收获园豆:10
悟行 | 园豆:12240 (专家六级) | 2012-06-25 09:07

那菜单表里面的字段怎么设计?我显示的TreeView是显示菜单表里面的哪个字段?如果显示菜单名称的话那也只能显示一个值呀,我想过:在菜单表里面加字段(此字段为所有菜单选项,类型为bit,如果为0不显示,如果为1则显示,先读取数据,然后在Model层进行文字转换,但是我觉得这样太麻烦,有没有好的办法呢!)

支持(0) 反对(0) ii 乄筱跃____ | 园豆:6 (初学一级) | 2012-06-25 09:11
0

这种数据库表结构很简单:

 

id(int, identity, not null)

code(自己定义了,可以是int,varchar,not null,唯一索引,也可以定义为主键)

name(nvarchar,长度自己考虑,not null)

parentcode(类型与长度同code,关联到code,当值为null的时候,表示一级菜单)

deep(int,深度,一级菜单是1,二级菜单是2,根据需要定义,不一定要)

root(bit,是否一级菜单,根据需要定义,可以不要,特别是有了deep后,更没定义的必要)

status(int,状态,说明菜单状态控制信息,比如是否有效等)

description(nvarchar,长度自定,可以不要,记录菜单项的描述信息)

timestamp(timestamp,时间戳,可以不要,主要是用在数据同步的情况下,如果没这个可能,就不定义了,养成一个好的习惯是,所有的表在不会有性能影响的前提下,都应该定义这个字段)

 

以上是基本定义。

 

另外,还要定义一个关联信息。

 

这个有两个解决方案:

1、每个用户一套独立的菜单系统,那么可以在上表中定义一个userid字段,这样,菜单系统完全独立,同时,唯一所以(code修改为组合的唯一索引,增加userid进去,并且,外键关联也要增加userid字段)

2、通过一张关系表来实现。所有用户使用同一套菜单系统,只是根据关系表定义哪些用户具备哪些功能的使用权限,这张表很简单:

userid

code(菜单编码)

 

当然,还有其它的方案,比如菜单表只定义菜单项与功能、连接等,而用户与菜单关系表则在定义使用权限的同时,定义多级关系。

收获园豆:40
无之无 | 园豆:5085 (大侠五级) | 2012-06-25 09:17

有点略懂,我先自己试试,谢谢!

支持(0) 反对(0) ii 乄筱跃____ | 园豆:6 (初学一级) | 2012-06-25 09:28

@ii 乄筱跃____: 不客气。

支持(0) 反对(0) 无之无 | 园豆:5085 (大侠五级) | 2012-06-25 09:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册