0

私は現在、複数のユーザー向けのアプリケーションを構築しており、ユーザー権限の部分に到達しました。

アプリケーションは約20のサブメニュー項目で構成されており、ユーザー特権に応じて、各ユーザーにアクセスを許可/拒否する必要があります。

これは、ユーザーAがサブメニュー1、4、21にアクセスでき、ユーザーBがサブメニュー2、3、9、11、20などにアクセスできることを意味します。

これは、すべての組み合わせをユーザーの役割にすることは不可能であることを意味するので、私は簡単な解決策を考えました。

私の最初のアイデアは、アクセスレベルを文字列に保存することでした。

このようにして、テストする各サブメニューの文字列で文字インデックスを使用できます。

これはうまくいくかもしれませんが、私はそれが本当に速く乱雑になるだろうと思うので、私の質問はです。

この問題を回避するための最良の方法は何ですか?データベースに何百万もの新しいテーブルを必要とせずに、保守可能で直感的なものを探しています。

前もって感謝します!

4

1 に答える 1

1

ここで要点を見逃しているかもしれませんが、各サブメニューにIDを設定してから、アクセスを決定するIDとユーザーIDの間に結合テーブルを作成することはできません。また、アクセスレベルの結合テーブルへの別の列を作成することもできます(読み取り専用、編集、管理者など)。

必要なパフォーマンスに応じて、最初のアクセス要求の後にユーザーの応答をキャッシュすることも、すべてのサブメニュー要求でそれを検索することもできます。

于 2013-02-25T08:55:47.180 に答える