Здравствуйте! Есть вэб-приложение, которое работает по следующей логике:
-Покупатель делает заказ на маркетплэйсе (в ЛК меняется статус на "Ожидает сборки") - по АПИ получаю список необработанных отправлений - записываю информацию о заказе в БД (дата заказа, дата отправки, артикул, название, цена, статус) - формирую табличное представление (отдаю на фронт) - в таблице при клике на артикул открывается информация от поставщика (при клике будет делаться запрос на АПИ поставщика) - из полученного списка выбирается позиция для покупки - формируется заказ(в ЛК меняется статус "Ожидает доставки") - когда заказанная позиция приезжает, её упаковывают и отправляют покупателю (в ЛК статус меняется на "Доставляется").
Так же на основании информации о цене из двух API мне ещё понадобится посчитать маржу и вывести в колонку на фронте.
upd: C большой долей вероятности, в будущем будет несколько поставщиков + скорее всего надо будет писать функционал аналитики для отчётов.
На данный момент есть таблица, в которую записываю информацию о заказе. Планирую создать таблицу которая будет содержать статусы, связать её с таблицей заказов и уже через код выводить информацию.
Так же думаю создать таблицу, которая будет содержать информацию об отправлениях, таблица которая содержит список отправленных заказов и таблицу которая будет содержать информацию о заказе, который был сделан у поставщика. Чтобы потом на сервере проводить математические расчёт с ценами \ скидками и т.п.
Таблица статусов будет связана с полями
статус в других таблицах через FK.
Так же на фронте будет фильтр:
a. Дата заказа
b. Дата отгрузки
c. Дата закупки
d. Артикул
e. Поставщик
В итоге имеется 5 таблиц:
- Список заказов ожидающих сборки
- Список заказов ожидающих отправки
- Список заказов которые доставляются
- Список заказов которые были сделаны у поставщика
- Список статусов отправлений
Насколько рационален такой подход или такой подход просто костыль костыльный? Какие ещё лучшие практики можно использовать для создания базы данных?