细颗粒度 权限系统 理论探索 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