1

私は現在、約6〜12ページのWebアプリケーションを作成しています。これらの各ページで、ユーザーが次のアクションの一部(またはすべて)を実行できるようにします:表示、追加、更新、および削除。

私が考えた現在の許可スキームは、データベースに整数を持っていることです。この整数は2進数に対応します(例:26-> 11010)。結果の2進数は「トグル」として機能し、ユーザーが持つ権限を決定します。どのビットの定義は、どの権限が別のテーブルに格納されているかを表します。

私の問題は、各ページに4つのオプション(表示、追加、編集、削除)がある場合、権限を決定するこの方法が手に負えなくなる可能性があることです。

これと同じくらい柔軟であるが(整数の制限に関して)圧倒的ではない許可スキームについて他のアイデアを持っている人はいますか?

4

2 に答える 2

5

おそらく、このルートに本当に行く必要がある場合、より良い答えは、データベースにページごと/ユーザーごとの行を作成し、一連の権限を設定することです。そのため、テーブルは次のようになります。

 page        user     create read update delete 
 =====       =====    ====== ==== ====== ======
 test.html   joe      y      y    y      n 
 test2.html  joe      n      y    y      n 

または、通常の場合と同様に、作成者、編集者、レビュー担当者、管理者などの役割を持ち、役割にきめ細かい権限を付与し、ユーザーを役割に配置することをお勧めします。

于 2009-11-04T12:59:36.373 に答える
2

私はあなたがビットに頼らないことをお勧めします。DB内の権限のカテゴリごとに個別の列を使用し、整数1と0を使用して、その権限が付与されているかどうかを示します。これにより、ビット操作が不要になり、高速になります。唯一の欠点は、列の数が多いことです。これは、あなたの説明では、それほど問題にはならないようです。

于 2009-11-04T12:55:03.027 に答える