1

ListItem(Sharepoint)がありますが、単純なクラス/エンティティと考えてみましょう。これで、このエンティティのプロパティ名はStatusおよびその他のプロパティになります。

プロパティ/ロール/ステータスごとの承認を実装する必要があります。

例: ロール=マネージャー、フィールド= RequestName、ステータス= 01権限:読み取り、更新

ロール=マネージャー、フィールド= RequestName、ステータス= 05権限:読み取り

ご覧のとおり、承認は基本的に3つの変数に基づいています:役割、ステータス、プロパティ

今、私はUIで、ユーザーがそれを表示または編集できるという事実に基づいて、いくつかのコントロールを無効/非表示にする必要があります。これは、いくつかのSQLテーブルといくつかの結合を使用して簡単に実行できます。

エンティティが30〜100のプロパティを持つ可能性があることを考えると、UIでコントロールを無効/非表示にするときはいつでも知る必要があります。

それが最善のアプローチだと思いますか:

  1. データベースに30回クエリを実行し、ユーザーが特定のプロパティを読み取れるかどうかを確認します

  2. ロールとステータスを指定してすべてのフィールドのアクセス許可をロードし、コレクションをメモリ内でループして、現在のフィールドのアクセス許可を取得します。

パフォーマンス/メモリバランスに興味があります。また、3つの変数(役割/ステータス/プロパティ)が権限を決定することを許可する他の承認アルゴリズムにも門戸を開いています。

ありがとうございました

4

1 に答える 1

0

100個の小さなオブジェクトを単純なメモリ内リストに保持するのは簡単で高速です。プロパティ名が一意である場合は、インデックス付きのコレクションを使用できます。これはさらに高速です。

それらが絶えず更新されていない場合は、データベースにクエリを実行する理由はありません。

于 2012-07-05T18:34:59.013 に答える