:::
社大學員專用

會員系統設計疑問…

discuss pic 2016-07-25 07:26:09
吳老師您好
我買了您的書"實戰 PHP7+MYSQL",看完之後有一些問題想請教您,希望可以給一點方向~
我照書上那樣做了一個會員系統,不過有朋友給我意見,如果把會員系統整個包在一個表上,未來擴展性不高(因為之後會順便做一些可以幫公司無紙化的申請表單)。

************************************************************************************************************
他建議我如下

@四個表:
1. 會員表
2. 群組表
3. 操作權限表
4. 群組-操作權限關聯表

@操作權限的意思:
審批權限,創建權限,刪除權限,修改權限,查看權限

@權限可以做成函數:
getpermission(userid,permissionid)
getpermission(usergroupid,permissionid)

@permission 可能是 010010101011,0 表示某個無權限,1 表示某個有權限.
************************************************************************************************************

我看了這跟很多論壇系統(discuz)的規劃很像,不過還是沒有什麼頭緒,特別在"操作權限表"跟"群組-操作權限關聯表"這部分。

要怎麼做關聯?在寫 PHP 的時候不就要同時更新多個資料表?

有沒有哪方面我可以去補充的。

謝謝 :)
discuss pic 2016-07-25 07:41:58
tad
您朋友的建議很好
大部分比較有點規模的系統其實也都是這麼做
書上的會員系統其實是非常非常簡易的(簡易到幾乎不能叫做是「系統」了)
一般來說,應該還有第 5 個表
  1. 會員表:會對應一個會員管理的界面,其中有個欄位(一般用複選,單選亦可)是用來選擇該會員的所屬群組。儲存後,同時存進「會員表」及「會員-群組關聯表」。
  2. 群組表:會對應一個群組管理的界面,儲存後,僅存進「群組表」。
  3. 操作權限表:會對應一個操作權限管理的界面,儲存後,僅存進「操作權限表」。
  4. 群組-操作權限關聯表:會對應一個什麼群組可以用什麼功能的界面,儲存後,僅存進「群組-操作權限關聯表」。
  5. 會員-群組關聯表:用來紀錄哪個會員屬於什麼群組(如果一個會員可以屬於好幾個群組的話才需要此表)。
基本上,要寫出完整的會員系統不算簡單,得花許多時間和精力,很難一步達陣,除非經驗非常豐富。
其實這個部份 XOOPS 做的非常好,不妨參考一下其資料庫欄位架構,應該會有幫助。
discuss pic 2016-07-25 08:11:33
吳老師您好
謝謝講解,這樣我了解一點了!

因為公司有分"部門"跟"職位",群組可以拿來放部門。
是不是這樣職位部分得再加一個"職位表",然後再加一個"成員-職位關聯表"!?
因為做簽核有分職位權限。
真多...

discuss pic 2016-07-25 08:16:15
tad
不怕麻煩的話,多做兩個表:部門表(如果職位名稱有可能會異動的話)、職位表(如果職位名稱有可能會異動的話)
這樣也行...

基本上我是不認為需要「成員-職位關聯表」啦~
除非一個成員可能身兼一個以上的職位才需要
一般來說,把「職位編號」寫進「會員表」裡面就行了(部門亦同)。

若是部門和職位其實都不可能會變動,那弄個陣列就行了,不需要大費周章做個表。
:::

搜尋


線上使用者

11人線上 (5人在瀏覽討論留言)

會員: 0

訪客: 11

更多…