我对您的意见很感兴趣:目前我的数据库中只有一个用户表,但我考虑添加一个新的用户表来将公共帐户与管理员帐户分开。
Pro:我不必检查“角色”表来验证尝试登录的用户。
缺点:管理员帐户不能成为社区的一部分,仅用于后端。如果您将某人提升为版主,那就太多了:他不能用他的公共帐户写帖子。
我目前检查用户是否是队友(伪代码)的解决方案:
$needed_role = "admin";
if ($User->is_in_team($user_id)) { // SELECT id FROM user WHERE team=1 AND user_id=$user_id
$roles = $User->getRoles($user_id);
if (in_array($needed_role, $roles)) {
// login...
}
}
这是一个简单的例子。角色被划分为“blog_post_write”、“blog_post_delete”等权限。
我目前的解决方案并不完美,所以请帮我拉皮条我的数据库!:)