日期:2014-05-19  浏览次数:20406 次

|M| 500分第三贴:求做一个Web系统的权限的编程思想和数据库设计和具体实现(大家先不要给我你们的实例,先看看我设计的可行不可行)
因为时间关系我没有办法慢慢去理解你们给的实例
首先感谢roapzone(宗璞))   因为实例实在是太强大了
还有hertcloud(·£孙子兵法£·)   虽然我还有没有去

以下是我的表
模块表
ID       模块名
1         汽车操作
2         火车操作
模块项目表
id       项目名
1         华南汽车票
2         华北汽车票
模块相应命令表
id     模块ID   项目ID     操作命令名
1       1             1               查看
2       1             2               下单

角色表
ID       角色
1         操作员
2         汽车操作员

角色操作设置
ID   角色ID     模块相应命令ID   是否可操作
1     1               1                             1
2     1               2                             0

用户角色设置
ID     用户ID     拥有角色ID
1       107           1
2       107           2

然后用页面命令前用
Authority(模块命令ID)==0?return;


public   static   Authority(Int   模块命令ID)
{
        return   sql查询当前用户相应模块命令ID的值
}

大家看看这样可不可以

谢谢

------解决方案--------------------
终于拿到沙发了
------解决方案--------------------
惭愧帮不上忙~
------解决方案--------------------
看不出来表设计有什么问题啊
------解决方案--------------------
可行. 但模块表和模块项目表可以合成一张表.相当于树的那种形式 模块相应命令表 id 模块ID 项目ID 操作命令名 模块id,项目id用一个字段就可. 操作命令是否还需要建一张表?
------解决方案--------------------
RE:但模块表和模块项目表可以合成一张表.相当于树的那种形式
好像不行吧。。。不分开来的话没有办法选择他的父模块啊

还有:操作命令是否还需要建一张表?
我感觉命令是对应个模块的这个项目的这个操作,是唯一的不会有公共应该不用吧
------解决方案--------------------
相当于一个多级菜单. 一级菜单就是模块.二级菜单就是页面. 2.因为我看到你写的是中文. 在管理界面用中文是比较容易操作, 在在程序中用中文去判断就不太好了.
------解决方案--------------------
我最近一直在研究这个呢,到现在还没有什么头绪,帮你顶一下吧。
------解决方案--------------------
太繁琐了,相当于拿个大铁锤见到钉子就砸一砸。你也许选择别的工具,甚至瑞士军刀,更有创意、更容易被用户愿意接受、用途更广。


------解决方案--------------------
许多时候,用户需要直接指定人员,而不是角色。

许多时候,用户需要指定动态角色。例如:“帖子的发起人”或者“帖子所在板块的版主”等,当帖子转到不同版快之后,这个指派依然成立,但是指向不同的用户。动态指定的角色不是一个静态字符串名称。

很多时候,不能将“匿名用户”作为一个普通角色由用户去添加,最起码它是一个极其特殊的角色由系统预先添加好。

许多时候,用户需要临时将自己的权限授权给别人。

等等。
------解决方案--------------------
up