私はあなたの意見に興味があります: 現時点ではデータベースに 1 つのユーザー テーブルしかありませんが、管理者アカウントからパブリック アカウントを分離するために新しいテーブルを追加することを考えています。
長所:ログインしようとするユーザーを検証するために「ロール」テーブルをチェックする必要はありません。
短所: 管理者アカウントはコミュニティの一部になることはできず、バックエンド専用です。誰かをモデレーターに昇進させると、冗長になりすぎます。彼は自分の公開アカウントで投稿を書くことができません。
ユーザーがチームメイト(疑似コード)であるかどうかを確認するための私の現在のソリューション:
$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」などの権限で分割されています...
私が現在行っている解決策は完璧ではないので、データベースをポン引きするのを手伝ってください! :)