您将有一个角色、用户和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 | ******** | ... |
| .. | ........ | ........ | ... |
+----+----------+----------+-----+
最后,您将在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 |
| .. | ....... | ....... |
+----+---------+---------+
这样,用户可以拥有无限数量的角色。