关于角色权限管理的数据库设计引发的思考表达不出来,说明还不是很了解(向高手提问) 西安

     昨天下班骑自行车载女朋友回家的路上,她突然问了我一个问题:“用户角色权限管理应该怎么设计?”

     这个问题我竟然一时回答不上来,不知道应该怎么跟她去讲明白。记得之前面试的时候有面试官问过我差不多的问题:“考试管理系统应该怎么设计?”

     我意识到要对一个不懂(面试除外)的人讲清楚这件事真的很不容易(对于我来说),我模模糊糊的说了一堆:“先要干啥,然后干啥”。这些话语我竟然一时无法用语言描述出来。最后我定格在数据库设计上,我跟她讲:“

首先,要有一个【 用户角色表 RoleInfo】里边存放 角色编号 RoleID、 角色名称 RoleName 和 角色描述 RoleDescription 等等一些信息,

其次是一个【用户表 UserInfo】里边存放用户的一些基本信息:UserID,UserNane,UserLoginID,UserPwd.......最后应该加上最重要的一个属性 :用户角色 RoleID ,

然后是一个【权限表 Permissions】里边存放 权限编号(PerMID)、权限名称(PerName)、权限描述(PerDescription)和 权限链接(PerUrl) 等等一系列内容”

最后是一个【用户角色权限表】里边存放 编号(ID)、角色ID(RoleID)、权限ID(PerMID)

最后我说了一句相当于给自己挖坑的话:“数据表设计要满足三大范式”。紧接着俺那可爱的女朋友就问了:“三大范式你知道么?说一下!”。我说:“三大范式就是......”到这里我说不下去了,我绞尽脑汁挖空心思从大脑里搜寻能表达清楚的词语,可惜我失败了。我不知道该怎么去表达,即使我心里很清楚三大范式、我设计数据库的时候也会满足范式,但是真正让我描述的话我还真描述不出来。最后用我自己很白痴的表达方式说了出来,不晓得她明白了没。(我很郁闷,这说明我对这块的知识还是没有吃透、标题所言:“-表达不出来,说明还不是很了解”)

    我说:“你问这个干啥?你又不写程序?”

    “我们经理要请假,给另一个程序说 如果有人来面试的话就让她面,只问最简单最基础的问题,就是用户角色权限管理应该怎么去设计,他们讨论的时候说了3个表”

   到这里我才算是明白了,据我猜想,他们设计3张表应该是 用户表 角色表 和权限表,这个角色表和权限表就形成了高耦合,貌似不满足3范式,不过我不知道我这个结论对不对,所以在这里向大家提问,我的设计和他们的设计,哪个更好?

新手,请勿见笑

原文地址:https://www.cnblogs.com/zhouzhaokun/p/2001930.html