私は、最終的にユーザーを特定のセクション/モジュールに制限する多くの方法を持つ弊社のアプリケーションを開発しています。アプリケーションはまだ小さいですが、私は、アプリケーションが大きくなるにつれ、保守や問い合わせが容易になるように、アクセス許可を格納する新しい方法に移行したいと考えています。データベースへのアプリケーション権限の保存
現在、私たちのMySQLデータベースには、ユーザーのID、ユーザー名、およびパスワードを格納する "user"という表があります。 「user_acl」と呼ばれる別のテーブルでは、次のとおりです。
user_acl_id
acl_root
acl_news_read
acl_news_write
acl_news_modify
acl_reports_read
acl_reports_write
acl_reports_modify
acl_users_read
acl_users_write
acl_users_modify
我々は唯一分で3つのモジュールを持っていますが、時間をかけてより作成され、それぞれの権限を追加する必要があります。
許可ごとに列を作成するのではなく、他の方法や情報を格納していますか?
admin publicなどの役割に関する追加情報を追加するにはどうすればよいですか?たとえばadminには会社名のように追加するための余分なものがあります。ユーザーにはこのフィールドがありません。 – james
私は関連するエンティティに情報を格納します。テーブルに余分な列を追加することができます。役割の詳細を追加する場合は、ロールテーブルに余分な列を追加できます。ユーザーテーブル –
ユーザー名とパスワードのフィールドがあります。これはすべてのユーザーに共通です。私は会社名、住所etc..alsoのようないくつかの余分なフィールドを持つメンバーテーブルを持っている私はいくつかの詳細情報と管理者を持っています...私はスーパーメンバー/サブタイプの関係をmemebers管理者とのユーザーのために使用する必要がありますか? – james