Re: [SQL ] 關於開資料表
我不想把資料表寫得太複雜, 最後累死自己要想辦法判斷某某角色是否有某某權限
我就單純做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
推
10/09 21:08, , 1F
10/09 21:08, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):