gpt4 book ai didi

mysql - 我将如何构建此数据库以实现功能?

转载 作者:行者123 更新时间:2023-11-30 22:56:27 24 4
gpt4 key购买 nike

我正在尝试使用 WP 创建一个插件,但在弄清楚我要如何构建数据库时遇到了一些麻烦。我的项目由几个要点组成,我坚持的部分是让数据库交互,用户可以在其中加入“项目”。如果他们愿意,用户将能够创建、加入(我遇到的最大问题)和删除“项目”。我正在考虑的数据库模式是这样的:

projects_db
id
name
description
other fields describing date created, created by, etc.

我将如何实现更多字段创建另一个数据库来处理加入“项目”的用户?谢谢!

最佳答案

您基本上是在尝试在 usersprojects 之间实现 N:M 关系。经典的解决方案是有一个映射表:

CREATE TABLE user_projects (
user_id INT,
project_id INT,
PRIMARY KEY (user_id, project_id),
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (project_id) REFERENCES projects(id)
)

编辑:为了详细说明评论,使用加入项目将只是对该表的插入。例如,如果用户 1 加入项目 345:

INSERT INTO user_projects VALUES (1, 345)

要查询哪些用户加入了项目,您可以使用join:

SELECT * 
FROM users u
JOIN user_projects up ON u.id = up.user_id
WHERE up.project_id = 345

或者如果您想根据项目的其他一些详细信息进行搜索,例如它的名字,你也可以加入那个表:

SELECT * 
FROM users u
JOIN user_projects up ON u.id = up.user_id
JOIN projects p ON up.project_id = p.id
WHERE p.project_name = 'my_project'

关于mysql - 我将如何构建此数据库以实现功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26184930/

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