私が持っているもの:ユーザーのWebサイトの権限を格納し、mySQLでクエリを実行する方法は?
私のテーブルには、privileges
というユーザの特権の文字列を格納するカラムがあります。 (-1 =所有者、0 =管理者、1 =中程度のコメントなど)だから私はこのような文字列をSQLに入れます:1,2,3
。
問題:
私は管理者とモデレータであるすべてのユーザーを選択したい場合は、それがLIKE
条件で少しトリッキーになります。今、私は管理者が必要な場合は、すべてのユーザーが1を検索するだけです(PHPを使用して非効率的です)。
私は、プラグイン開発者が簡単に「プラグイン」して簡単にクエリを実行できるソリューションを探しています。私のソリューションはうまくいきますが、ユーザーが何百人もの人に成長すると、一定の特権を見つけるために、繰り返しこれらのすべてを繰り返し実行する必要があります。
誰にでも良い方法や考えがありますか?
あなたは、リレーショナルデータベース[ユーザ] - [ - ロール]を使用する必要があります...あなたはPHPでループすると効率が悪いと言っていますが、LIKEについてはどうですか?あなたが望むものを実現するには、LIKEクエリの始めにワイルドカードを使用する必要があります。最悪のやり方です。 ACLを見てください。 – Alex
@Alex - 私は間違いなくmySQLの初心者ですが、データの転送は「LIKE」を使用した低速クエリよりも効率的ではありません。 – Jason
現在のテーブル構造に基づいてビューを作成できます。このビューでは、すべてのユーザタイプを分割し、複数のクエリを「UNION」と組み合わせることができます。次に、特定のタイプのビューを照会します(例: 'WHERE type = 1')。クエリが遅いがデータ転送量は最小です。 – Alex