用户 权限 mysql 设计_关于用户信息的权限控制的数据库设计问题

89267b21b7ff2676320e38b76ac270b1.png

就像博客园的个人设置一样,对每个用户信息字段都有,任何人,朋友,自己三个权限,那么这样的数据库该怎么设计呢?

我个人想到的方案有两种:

1.每个属性是一个单独的表

user(id, nikename); --用户信息主表

permission(id, level);  --权限表

name(id,user_id,permission_id);  --用户名名称属性表

address(id,user_id,permission_id);  --用户地址属性表

.....这样一次类推,每个属性是一张单独的表.

这样设计的好处是逻辑控制比较好做,但坏处是没加载一次用户信息都要把所有的属性表查询一次,这样至少也要查询10多张表,肯定不行.

2.以属性名为标识,控制权限

user(id, nikename,name,address,.......); --用户信息主表

permission(id, infoname,permission);  --权限表

数据示例:

1, name, public

2, address, private

这样的设计方便的表的查询,但不好的地方在于不符合数据库设计规范,如果主表中的name,address名称改变,将会导致权限表对应不到

本人已经想不到还有什么好的的办法可以解决这个问题了,请各位大虾指点一二.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值