将用户添加到他们不属于的项目中? Postgres / Vue JS

时间:2019-02-25 15:53:02

标签: postgresql 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进行查询,并且希望将此信息显示在管理员可以编辑/更新的表中。基本上,管理员应该能够将用户添加到项目中,但我不完全确定如何在前端显示数据-当管理员转到特定项目页面时,他们应该能够添加用户该特定项目尚不存在。例如,如果我要显示项目Falcon,则管理员应该能够分配joey@friends.comomar@thewire.com,因为它们已经不属于该项目。

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

2 个答案:

答案 0 :(得分:0)

感谢小费。在前端使用.filter并在后端进行了一些查询之后,我得出的结论是,这将更易于维护:

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

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

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

答案 1 :(得分:-1)

对于这样的事情,通常会在前端过滤列表。 这样,您不需要在后端进行额外的API调用,它变得更加简单/快捷。