gpt4 book ai didi

mysql - 将具有 2 个 FK 的表连接到一张表

转载 作者:行者123 更新时间:2023-11-29 10:57:56 25 4
gpt4 key购买 nike

我有一个“2 人团队”模型和一个“项目”模型。我想创建一个联接表,以便我可以在一个项目上将 2 个人配对在一起。但这个想法似乎很奇怪:

User
:id

Project
:id

Team
:user_id_1
:user_id_2
:project_id

这是一个坏主意吗?我在想也许只是创建一个Assignment 表,这样每个User 就有一个项目分配,但这样就不存在一对用户的概念了。

最佳答案

您可以使用以下架构

User
:id

Project
:id

Assignment
:user_id
:project_id
(create 1 row for each user in the project)

示例,查看项目的用户:

SELECT u.*
FROM User u
JOIN Assignment a ON a.user_id = u.id
JOIN Project p ON p.id = a.project_id
WHERE p.id = xxx;

查找用户在项目中的队友:

SELECT u.*
FROM User u
JOIN Assignment a ON a.user_id = u.id
JOIN Project p ON p.id = a.project_id
WHERE p.id = xxx AND u.id != yyy;

关于mysql - 将具有 2 个 FK 的表连接到一张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42752630/

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