毕业设计做了一个小型的网站后台管理系统,在数据库设计方面遇到一点问题,希望各位前辈能给我解答一下,在此先谢过各位了。
具体思路如下:用户组(即用户角色)分为:管理员,普通用户,游客
权限有:增加用户,删除用户,发表文章,浏览文章,删除文章管理员拥有全部的权限,普通用户包括对文章的管理权限,游客只能浏览文章。同时管理员还可以增加或删除某一用户的其中一项或多项权限。(跟wiki后台的权限管理类似)
这样的话数据库表应该怎么设计,分几个表,每个表又该分哪些字段?希望能详细点,能举个小例子就更好了。谢谢了

解决方案 »

  1.   


    我一开始的时候建了一个权限表,里面就id跟name两个字段,把所有的权限都存进去了,
    这样显示权限列表的时候就是写死的了。改变权限时,以普通用户为例,把他的“删除文章”权限去掉,就不知道该怎么做了。我是想如果一个用户有某种权限,那么在数据库中就该有该权限的记录,但是按我设计的权限表,以id标记权限,意味着该用户的权限字段会有多个值,这样应该不可以吧?
      

  2.   


    最简单的,就是 一个user表,一个role表(包含N个功能),一个功能表function(具体到一个页面,其中一个功能按钮字段varchar(20),为由1和0组成,1表示有这个按钮的操作权限,0表示没有这个按钮的操作权限),一个用户角色关系表user_role,一个角色功能表role_function表。