我正在开发后端的登录系统。用户级别和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