简单说利用菜单角色或者用户角色来控制。用户 - 菜单角色 - 菜单
or
用户 - 用户角色 - 菜单
or
用户 - 用户角色 - 菜单角色 - 菜单两头都可以走,但是最好只用一种,两种都用了虽然增加了灵活性,但是也增加了复杂性,容易混乱。故不推荐第三种
or
用户 - 用户角色 - 菜单
or
用户 - 用户角色 - 菜单角色 - 菜单两头都可以走,但是最好只用一种,两种都用了虽然增加了灵活性,但是也增加了复杂性,容易混乱。故不推荐第三种
调试欢乐多
能不能第一种为例,说一下,3个表的每个字段?
如用户:
id 姓名
---------
菜单;
id 菜单名称
----------
菜单角色:
用户id 菜单id 是否有权限
---------------
还是用户:
id 姓名 角色
-------------
菜单;
id 菜单名称
-----------
菜单角色;
角色 菜单id
------------
谢谢了。。这个问题我想了很久了。。
请赐教
谢谢了。。
[email protected]
或是qq:83239830
user_id
user_name
dept_id
com_id
(关键字:user_id)权限信息表(RightInfo)
right_id
right_name
(关键字:right_id)用户权限表(UserRight)
user_id
right_id
(关键字:user_id,right_id)创建视图 v_UserRight
create view v_UserRight
as
select a.*,b.*
from userinfo a,userright c,rightinfo b
where a.user_id = c.user_id
and c.right_id = b.right_id;------------------
Delphi方面,你可以自己写个公用Function,在TForm.onShow事件中调用可以对每个TMenuItem对象进行过滤,有权限的则Enable := True,反之则False,或者也可以通过Visiable参数定义
如果本来用户就是虚拟的对应一类人的实体,也就没问题。
否则还需要设计角色表。
既:
用户
id 姓名 角色角色
id 名称菜单
id 名称角色菜单
角色id 菜单id 权限
Role_id
Role_name
Right_id
(关键词:role_id,right_id)