我正在为一个有四个不同用户的网站设计 mysql 数据库,如下所示。
1.管理员
2.企业
3.投资者
4.个人
我为每种类型的用户创建了四个不同的表,因为它们有不同的列。我还创建了一个名为 user roles like 的表。
用户角色 => rol_id & rol_name
我已将 rol 1 指定为管理员,将 2 指定为企业,依此类推。现在我需要创建一个 commen user_login 表,其中包含所有上述类型用户的用户名和密码。我很困惑如何在所有这四个表和 user_login 表之间建立关系?
最佳答案
型号
您只需要 3 个表。
- 用户:id、用户名、密码
- 角色:id,角色名
- 用户角色:user_id, role_id
列 user_id 是一个 foreign key指向用户表的列 id。 列 role_id 是指向角色表列 id 的外键。
这种模型的好处是,如果你想创建一个新的角色,你只需要在角色表中添加一行,而不需要修改你的模型。
示例
用户表:
id username password
1 sangam password
2 Muur password
角色表:
id role_name
1 Admin
2 Business
3 Investor
4 Personal
检索管理员列表:
SELECT u.*
FROM user u, user_role ur, role r
WHERE u.id = ur.user_id AND ur.role_id = r.id
AND r.role_name = 'Admin';
添加新角色:
INSERT INTO TABLE role(role_name) VALUES('New Role Name');
将业务角色添加到用户 sangam:
INSERT INTO user_role(1, 2);
或者:
INSERT INTO users.role_user(user_id, role_id) VALUE(
(SELECT id FROM user WHERE username = 'sangam'),
(SELECT id FROM role WHERE role_name = 'Business')
);
关于php - 如何处理mysql数据库中的多个用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25912524/