首页 > 解决方案 > 将用户添加到他们不属于的项目?Postgres / Vue JS

问题描述

我有三张桌子,

用户:

id        email
1         greg@yahoo.com
2         erik@gmail.com
3         joey@friends.com
4         omar@thewire.com

项目:

id        name
1         Falcon
2         Dragon
3         Phoenix

和UserProjects(联结表看哪个用户属于哪个项目):

id        user_id        project_id
1         1              1
2         1              2
3         2              2

我已经为我的前端设置了一个 REST API 来查询,我希望在管理员可以编辑/更新的表中显示这些信息。基本上,管理员应该能够将用户添加到项目中,我只是不完全确定如何在前端显示数据 - 当管理员进入特定项目页面时,他们应该能够添加尚未添加的用户存在于该特定项目。例如,如果我要显示 project Falcon,管理员应该能够分配joey@friends.comomar@thewire.com因为它们已经不属于该项目。

这可能不是理想的做事方式,如果不是 - 你们会建议我如何构建它?这是我的数据库应该处理的工作,还是我应该在前端以某种方式过滤掉它?

标签: postgresqlvue.js

解决方案


谢谢你的提示。在前端和后端的一些查询上玩了一下之后.filter,我得出的结论是这将更容易维护:

SELECT id, email
FROM "user"
WHERE id NOT IN (SELECT user_id FROM userprojects WHERE project_id = 1)

我将用project_id = 1我需要查询的任何项目 ID 替换。

如果这被认为是一个错误的查询,请告诉我。


推荐阅读