我正在開發後端的登錄系統。用戶級別和OOP體系結構
會有許多用戶級別/權限來執行某些任務。
成員可以有一個或多個級別。
什麼是最好的體系結構來做到這一點?
我帶着這些解決方案:
表:
Group
- group_id (P)
- group_name
Group_User
- group_id (F)
- user_id
而如何鏈接與面向對象的方法呢?
OOP設計我想出了:
class User {
private $privateSalt = "Don't Tell Anyone! Q£$£$^$";
public function newAccount($email, $password, $firstName, $lastName) { }
public function login($email = 0, $password = 0) { }
private function _setSession($data) {
$_SESSION['logged_in'] = true;
$_SESSION['member_id'] = $data['member_id'];
$_SESSION['email'] = $data['email'];
$_SESSION['first_name'] = $data['first_name'];
}
public function logout() { }
public function isLoggedIn() { }
}
這是沒有必要的OOP特性申報用戶的詳細信息,因爲我已經存儲在會話? 另外,如果用戶刷新頁面,建議再次檢查用戶$ _SESSION ['member_id']對數據庫?
你說「水平」,但在你的例子中,你使用「組」,他們不是同一個概念。在我看來,等級會隨着你的'等級'升高而嚴格增加。當你有組時,你可以對組賦予權限的任何組合。你能澄清嗎? – Halcyon 2011-05-28 21:02:25
作爲一個完全無關的一套技巧,我會建議你還包括在數據存儲的組名和用戶名(MySQL或其他) - 不僅僅是ID的。它將使'讀'你的數據庫變得更容易。 – Halcyon 2011-05-28 21:08:27
另一個提示是關於_setSession函數。我知道它是私有的,但該簽名僅僅是慘不忍睹,將其更改爲:'_setSession($ ID,$電子郵件,$姓名)' – Halcyon 2011-05-28 21:09:24