まず第一に、andを使用したテーブルを作成する代わりにadmin_id
(user_id
役に立たない)、とを使用して別のテーブルを作成する必要があると思いますusers
。privileges
そうすると、テーブル構造は次のようになります。
Users privileges
| id | user | privilege_id | | id | privilege |
| 1 | user1 | 1 | | 1 | user |
| 2 | admin1 | 2 | | 2 | admin |
次に、アプリケーション内でユーザーレベルを呼び出す場合は、次のようにします。
SELECT privilege FROM privileges WHERE id = <privilege_id from users table which should already be set within your code>
(MySQL)
ALWAYS
この目的のためにテーブルにを設定する必要がid
あります。これは、別のテーブルからデータを収集するときの関係データの基礎になるため、この例では次のようになります。the <id> field of the privileges table and the <privilege_id> of the users table.
ここから、このメソッドをDatamapperやcodeigniter、または誤解を招くタグが意味するものに転送できるはずです=]
SELECT
データベースから予約する必要がある場合は、 booking
(追加の表を作成して以下のように追加)を選択し、予約の時刻を((privilage_id == 1) && (privilage_id == 2))
探します。これにより、単にではなく、管理者とユーザーの両方がいる日付が検索されます。 1つのユーザータイプを見ると、それらすべてを見ることができます。また、複数の列ではなく1つの列を呼び出すことで、面倒な作業を省くことができます。また、この方法では、テーブルの名前が関数に関連しているため、テーブルを簡単に管理できます。
Users privileges booking
| id | user | privilege_id | | id | privilege | | id | date | privilege_id |
| 1 | user1 | 1 | | 1 | user | | 1 |5/2/13| 1 |
| 2 | admin1 | 2 | | 2 | admin | | 2 |5/2/13| 2 |
したがって、MySQLはSELECT date FROM booking WHERE ((privilege_id == 1) && (privilege_id == 2))
、期待する結果を提供します。データをサニタイズしてテーブルに入れる必要がある場合は、このような手順で1つのデータベースに2つの行を作成する必要があります(これは例では、架空の記入済み予約フォームを使用します(PHPで実行されます)):
if((isset($user) && (isset($usertype)) && (isset($usertypetwo)) && (isset($date)))
{
if(($usertype != $usertypetwo))
{
"Insert BLAH BLAH"
}
}
また、このメソッドを使用すると、ユーザーテーブルからユーザータイプを取得して、privilege_id