首页 > 解决方案 > 从不同的表中选择字段 - TypeORM

问题描述

我对 SQL 有点陌生。我有三张桌子users_tableproducts_tableusers_orders。保存有关用户的users_table基本信息,users_orders表保存有关用户订单的信息。这是products_tableand的结构users_orders

注意

用户可以注册并创建要在平台上销售的产品(如市场)。

产品表

id: Int
productName: String
price: Int
...
createdBy: Foreign key to user's table

用户订单表

id: Int
isOrdered: bool // to know if a user ordered a particular item
userId: Foreign key to the user's table
productId: Foreign key to the product table

问题

在前端,我进行 API 调用以从数据库中获取所有产品并将它们显示在主页上。我希望能够知道用户是否订购了特定商品,如果有,那么基于布尔检查,我可以使不可order button点击。这是为了防止他们两次订购特定商品。(业务需求)。

预期行为

我目前TypeORM用来处理我与 Postgres 的数据库交互。如何运行查询以从products_table旁边获取所有订单users_orders以了解用户订购了哪些商品,以便将isOrdered字段返回给我?

API 响应示例

当我调用数据库以获取所有产品时,会返回类似的响应。

[
 {
  productName: String
  price: Int
  createdBy: User who created the product listing
  date: Date
 }
]

我希望能够进行一个查询,该查询可以检查users_ordersproducts_table了解当前登录用户制作的产品。所以响应可能是这样的

[
 {
  id: Int
  productName: String
  price: Int
  createdBy: User who created it
  isOrdered: Boolean
  productId: Product object details
 }
]

如何使用 TypeORM 实现这一目标?先感谢您!

标签: javascriptnode.jspostgresqltypeorm

解决方案


推荐阅读