细颗粒度 权限系统 理论探索 3


细颗粒度 权限系统 理论探索 3



什么作为约束最合适?

刚才的例子:无论在什么情况下,我的记录你不能看。你的我不能看。


例子:

超级大型的信息系统,商品表 里面数据达到50w行,用一张权限表去记录每条商品的创建者,那么不就等于把商品表 clone了一次?又多了50w条权限记录?如果再有订单表?不疯了才怪!

所以权限控制的对象数据量一定不能多!可能吗?当然!

比如一个ERP的百货公司,一般来说招商人员负责某种类型的商品(非常符合现实,如果让招商人员直接负责某个商品,他肯定会去跳楼的)。这种类型在数据库里面的记录量不大,一般就几百条。这个就应该让权限去控制。

回来上面可笑的例子:

一张商品表一定有一个字段是 商品类型 (没有,设计数据库的人应该去拿个锐角撞上去了)。
这个字段一定是个外键(不是外键的也离上面惨死的人差不多命运了)。
这个外键指向的表商品类型 数据量一定不多(不就鞋、袜子什么的贝)。
我们只要对这张表进行创建者记录,那么反过来就能够控制商品表了。就像下面的sql

SELECT * FROM ITM_ITEM WHERE USERID = :USERID (STUPID)

SELECT * FROM ITM_ITEM WHERE ITEMTYPE IN (SELECT ITEMTYPE FROM ENUM_ITEMTYPE WHERE USERID = :USERID)

明白了怎么去控制了吧!

转载于:https://www.cnblogs.com/zc22/archive/2007/10/13/922894.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值