1

私は Web アプリケーションを作成しており、バックエンドの選択を始めているところです。これでいろいろなやり方ができるようになったので、いいところと裏技を探しています。

私が関与している質問のいくつか:

  • 管理者ユーザー用にデータベースに別のテーブルを作成する必要がありますか?
  • 管理データと通常のデータをロードするためにいくつかのクラスを作成するか、管理セクション用に別のクラスを作成する必要があります
  • さまざまなタイプのユーザーの作成に関する情報はどこで入手できますか
  • バックエンドのベスト プラクティス

私のアプリケーションは、MySQL データベースを使用して PHP で作成されています。

4

2 に答える 2

0

管理者ユーザー用に別のテーブルを保持するのは良いことですが、それらの管理者ユーザーが「通常の」ユーザーでもない場合のみです。

考慮すべき点がいくつかあります。

  • 管理者ユーザーのApache 認証(または IIS の Windows アカウント)。システムを完全に分離しますが、オーバーラップを許可します。通常のユーザーは通常のユーザーになることができますが、ブラウザーを介して認証されるまで、管理機能にアクセスすることはできません。特定の種類のユーザー ロール (メンバーと管理者のみなど) しかない場合は問題なく動作します。

  • すべてのユーザーが 1 つのテーブルに含まれていますが、役割と権限は別々です。これは、必要に応じて細かく設定できるため、最も柔軟です。たとえば、すべてのユーザーは「コメントを投稿する」ことができ、管理者は「コメントを削除する」および「ユーザーを禁止する」ことができますが、モデレーターは「コメントを一時停止する」および「ユーザーをミュートする」ことしかできません。新しい機能を追加すると、いくつかの新しい権限を実装してロールに割り当てるだけです。 Drupalアクセス制御はこれを非常にうまく行っており、よく見てみる価値があります。

于 2010-03-19T05:38:20.810 に答える
0

これを行う良い方法は、ユーザー テーブルに「ランク」用の新しいフィールドを追加して、通常のユーザーとスタッフ メンバーを区別することです。必要に応じて、モデレーター、管理者などの異なるスタッフ メンバー レベルを区別することもできますそれ。管理者は、ユーザーが実行できるすべての機能を実行できる必要があるためです。使用する

class Admin extends User { }

スタッフメンバーに固有の機能を追加したい場合。

バックエンド機能に関しては、サイトの設定方法によって異なります。フレームワークを使用している場合は、既存のコントローラーに新しい関数を追加するだけで、特定のランクのユーザーのみにアクセスを制限できます。

たとえば、ForumPost オブジェクトのコントローラーがある場合でも、ForumPost の delete() 関数を呼び出すには、ユーザーがフォーラムのモデレーターである必要があります。

フレームワークを使用していない場合は、必要なバックエンド機能ごとに独自のページを作成する必要があります。

于 2010-03-19T05:49:58.643 に答える