#javascript #node.js #postgresql #typeorm
Вопрос:
Я несколько новичок в SQL. У меня есть три стола users_table
, products_table
, и users_orders
. В users_table
нем содержится основная информация о пользователе, а в users_orders
таблице содержится информация о заказах пользователя. Вот структура products_table
и users_orders
.
N. B
Пользователи могут регистрироваться и создавать продукты для продажи на платформе (например, на торговой площадке).
Таблица продуктов
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 } ]
I want to be able to make a single query that can check the users_orders
and products_table
to know which product the current loggedIn user has made. So the response could be like this
[ { id: Int productName: String price: Int createdBy: User who created it isOrdered: Boolean productId: Product object details } ]
Как мне добиться этого с помощью TypeORM? Заранее благодарю вас!