gpt4 book ai didi

php - 如何处理mysql数据库中的多个用户

转载 作者:行者123 更新时间:2023-11-29 00:09:26 25 4
gpt4 key购买 nike

我正在为一个有四个不同用户的网站设计 mysql 数据库,如下所示。

1.管理员
2.企业
3.投资者
4.个人

我为每种类型的用户创建了四个不同的表,因为它们有不同的列。我还创建了一个名为 user roles like 的表。

用户角色 => rol_id & rol_name

我已将 rol 1 指定为管理员,将 2 指定为企业,依此类推。现在我需要创建一个 commen user_login 表,其中包含所有上述类型用户的用户名和密码。我很困惑如何在所有这四个表和 user_login 表之间建立关系?

最佳答案

型号

您只需要 3 个表。

  1. 用户:id、用户名、密码
  2. 角色:id,角色名
  3. 用户角色: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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com