关于项目权限在数据库中建表的问题

请问下项目经验丰富的大神们在项目中关于权限建表怎么建立,如:现在有个权限表,里面有权限1,权限2,权限3,权限4,分别对应的权限的编号是1,2,3,4,然后现在有个用户表,假设有一个用户拥有2,3,4的权限,我应该怎么创建这个用户表呢,我不可能在用户表里添加权限字段,然后对应的用户给它插入2,3,4然后用逗号隔开吧??应该怎么设计这个表最合理呢??

4个回答

如果分类比较复杂 你可以再把分类表做一个无限极分类

我给你个最简单的商品表设计

goods(商品表)
id name type_id
1 宝石 5
2 礼物a 3

商品分类表type
id name pid
1 珠宝类 0
2 礼物类 0
3 生日礼物 2
4 金银首饰 1
5 节日礼物 2

商品分类表的设计你可以搜素下 无限极分类

上表就是一个多级的无限极分类设计 结构:

珠宝类
------金银首饰
礼物类
------生日礼物
------节日礼物

然后你再商品里面只保存分类id即可

查询的时候 select * from goods join type where goods.id = 2 结果就是 名称=>礼物a 类型名称=>生日礼物

打错了 最后一句 应该是都为true 证明有这个权限

zhangsheng_1992
zhangsheng_1992 回复jialiang1012: 然后分类表新增 修改 的时候也不影响商品 但需要做一下约束 就是该分类下有商品的时候不允许删除
3 年多之前 回复
zhangsheng_1992
zhangsheng_1992 回复jialiang1012: 很简单 你设计两张表 一张用来放商品 一张用来保存商品分类 然后商品表里面仅保存分类id即可 这样修改新增商品不影响分类
3 年多之前 回复
jialiang1012
jialiang1012 由于是后台管理系统,所以可以动态添加分类,
3 年多之前 回复
jialiang1012
jialiang1012 像这种商城里的商品分类该怎么设计好呢?
3 年多之前 回复
jialiang1012
jialiang1012 回复jialiang1012: 是一种珠宝的分类,比如礼物里面就可以分成“礼物建议类”“赠送对象”“节日礼物”等等还分什么“即将上线”的类,还有“明星同款”等等分类,分的太复杂了,把我弄得晕头转向的
3 年多之前 回复
jialiang1012
jialiang1012 恩,那个我现在遇到的是商品的分类,分的类太多了,所以在设计这些表的时候把我自己弄得糊里糊涂的不知道怎么设计最合适
3 年多之前 回复

权限多的话 你可以用rbac的方式 用户表里面存储这个用户的角色即可 这个你可以搜索下rbac 我这就不多讲了

权限少的话 比如就十几个权限 可以通过位运算的方式 如下:
首先把权限定义如下
权限名称 值
add 1
select 2
delete 4
update 8
每一个权限的值都是2的次方 第一个是0次方 第二个1次方 以此类推

比如这个用户有前三个权限 你在用户表里纪录下 前三个值的和 此处值为7 让后保存到用户表里
查询的时候 比如要看这个用户有没有update权限 update的值为8 你用用户保存值 7&8 得到的是false 证明没有
而其他3个 7&1 7&2 7&4 分别为 add update delete 都为false

rbac模式,你这个就像角色表和权限表关系差不多的,加一个中间表存角色id和权限id就行了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!