@HCEL

Как создать архитектуру БД для заказов продуктов и услуг в приложений?

И так изначально были таблицы products и orders.
Таблица orders создавала платеж и меняла свой статус при успешной оплате продукта.
orders
id userId productId amount paid createdAt

Теперь появились такие вещи как "Покупка доп.услуг к продукту" это может быть Доставка, Оформление этого продукта и много разных вещей. Так же есть возможность купить VIP статус, которая будет предоставлять плюшки в приложений. Например бесплатная доставка и т д.

Как это можно спроектировать? Самое логичное что я пока придумал - это из таблицы orders убрать productId, потому что вдруг если что то добавится в приложений и собирать столбцы в бд типа (productId, productServiceId, serviceId) и ставить все по умоланию NULL не очень хорошая идея.

Мысль такая: таблицу orders оставить для создания глобальных платежей на сайте, а для каждого типа продукта создавать отдельную таблицу.
Например вот таблица заказов продуктов
product_orders
id productId orderId
Таблица заказов услуг для пользователей Вип статус, может подписки какие нибудь
user_service_orders
id serviceId orderId
и т д.
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 2
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
У вас какой-то странный магазин был изначально.
Обычно делается две таблицы, orders и order_details, во вторую пишется состав заказа, в котором фиксируется цена, скидка и все такое прочее.
Доставка - это не дополнительная услуга, а отдельная сущность, привязанная к заказу, со своими заморочками.
Остальные доп. услуги - это обычные товары, которые кладутся в корзину.
Вип статус - плюшка пользователя, а не покупки. При оформлении заказа она просто учитывается при подсчете стоимости.
Ответ написан
tsklab
@tsklab
Здесь отвечаю на вопросы.
Покупатель и Продукты и услуги.
Заказ и Спецификация заказа.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы