3

私はかなり優れたプログラマーですが、システムアーキテクチャの設計に関しては得意ではありません。私は非常にシンプルな在庫システムを作成していますが、それを構築するための良い方法を知りたいと思います。

ユーザーが使用できる機器は約20個あります[すべて表示| 更新| 削除| ]それぞれを追加します。ただし、機器ごとにアクセスレベルが異なります(動的である必要があり、誰が何を表示または削除できるかを変更する必要があります)。

たとえば、1つの機器には?

addPart1.php
removePart1.php
updatePart1.php
index.php (view all parts)

addPart2.php
removePart2.php
updatePart2.php
index.php (view all parts)

すべての部分について?優れた、スケーラブルで効率的な構造を設計しようとすると混乱します。

4

2 に答える 2

6

アクセス制御リスト(ACL)は、オブジェクトに関連付けられているアクセス許可のリストです。ACLは、オブジェクトへのアクセスを許可するユーザーまたはシステムプロセス、および特定のオブジェクトに対して実行できる操作を指定します。通常のACLでは、リスト内の各エントリはサブジェクトと操作を指定します(たとえば、ファイルWXYのACLのエントリ(Alice、delete)は、ファイルWXYへのアクセスをAliceに許可します)。

出典:WIKI

ご覧ください:

http://dev.juokaz.com/php/acl-made-easy-part-1(ACLのチュートリアル)

http://sourceforge.net/projects/tackle/

于 2011-05-11T21:23:17.927 に答える
1

製品テーブルを分類できるため、各種類の機器には独自の「カテゴリ」または「グループ」があります。これを行うには、各製品に「group_id」を割り当てます(テーブルの新しい列に)。300個の製品がある場合、それらの一部はグループ1に含まれ、その他はグループ2に含まれます。

次に、usersテーブル(各管理者のユーザー名/パスワードを含むテーブル)に、「group_permissions」というフィールドを追加する必要があります。そのフィールドには、各ユーザーが表示できる「グループID」のリストを保存する必要があります。これらの権限はコンマで区切って保存できます。

$permissions = '1,2,5,9';

ユーザーがPHPファイルの1つにアクセスするたびに、そのパーミッションを取得し、次のような簡単なチェックを行います。

SELECT * FROM products WHERE group_id IN($permissions)

これにより、ユーザーが編集または表示する権限を持つ製品のみが返されます。これは、インターフェースによって異なります。

于 2011-05-11T21:37:26.367 に答える