roles、users、およびusers_rolesテーブルが作成されます。
roles
テーブルには、ユーザーが持つことができるさまざまなロールが保持されます。サンプル データでは、管理者ロールと寄付者ロールを宣言しました。
roles
id unsigned int(P)
description varchar(15)
+----+---------------+
| id | description |
+----+---------------+
| 1 | Administrator |
| 2 | Donator |
| .. | ............. |
+----+---------------+
そしてもちろん、ユーザーに関する情報を保存する必要があります。
users
id unsigned int(P)
username varchar(32)
password varbinary(255)
etc.
+----+----------+----------+-----+
| id | username | password | ... |
+----+----------+----------+-----+
| 1 | bob | ******** | ... |
| 2 | mary | ******** | ... |
| .. | ........ | ........ | ... |
+----+----------+----------+-----+
最後に、テーブルで 2 つを結合しusers_roles
ます。bob
私のサンプル データでは、それが寄付者でありmary
、管理者と寄付者の両方であることがわかります。user_id
とrole_id
はどちらもそれぞれのテーブルへの外部キーであり、一緒になってこのテーブルの主キーを形成します。
users_roles
user_id unsigned int(F user.id)\_(P)
role_id unsigned int(F role.id)/
+----+---------+---------+
| id | user_id | role_id |
+----+---------+---------+
| 1 | 1 | 2 |
| 2 | 2 | 1 |
| 3 | 2 | 2 |
| .. | ....... | ....... |
+----+---------+---------+
このようにして、ユーザーは無制限の数の役割を持つことができます。