作者jimshih (传说中的果汁学长)
看板Database
标题Re: [SQL ] 关於开资料表
时间Sun Oct 7 23:29:32 2012
我不想把资料表写得太复杂, 最後累死自己要想办法判断某某角色是否有某某权限
我就单纯做2个table : LimitCode / UserLimit
LimitCode: 存放所有权限的名称及值, 以群做区别
ex: nPK / sGroup / sCode / sName
1 / Product / Read / 检视产品资料
2 / Product / Create / 新增产品资料
3 / Product / Update / 修改产品资料
4 / Product / Delete / 删除产品资料
UserLimit: 存放所有角色拥有的权限
ex: sUserID / nLimitPK / sEnabled
jimshih / 1 / Y
hsinyu / 1 / Y
hsinyu / 2 / Y
hsinyu / 3 / Y
hsinyu / 4 / N ==> 原本为Y, 後来经安全考量把删除产品的权限拿掉
捞取使用者有哪些权限:
Select LC.* from LimitCode LC, UserLimit UL
where UL.nLimitPK = LC.nPK
and UL.sEnabled = 'Y'
and LC.sGroup = '(看你要捞哪支程式的权限)'
and UL.sUserID = '(使用者登入帐号)'
好处是要做权限设定时很方便设, 以後要扩充新程式的权限时, 只要在LimitCode里加
也不会影响到原本的设定
这是我的方法罗~ 给你参考一下 :)
※ 引述《hsinyu716 (hsinyu)》之铭言:
: 各位大大
: 目前遇到一个不知道资料表怎开比较好,
: 一个角色n个crud权限,
: 可否利用二进制1111(各代表crud)和十进制15(存资料库 15,10,12,,,,,)
: 来互转呢?或是直接存入1111,1010,1100....不想多开n个栏位
: 因为前台要可控制crud,想说checkbox就是0和1
: 这样不知道好不好@@
: 或是有什麽好的方法可提供?
: 感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.70.145.218
1F:推 hsinyu716:j大推荐的好像比我想到的还要好…我来试试!感谢! 10/09 21:08