@hunteramg

Прошу проконсультировать по разработке Web-приложения, как реализовать учет и базу данных?

Приветствую, потребовалась необходимость реализовать систему учета заявок.
Суть системы отследить: заказ позиций прорабом, одобрение заказа 2 отделами, поиск поставщика снабжением, оплату бухгалтерией, доставку на склад (статус в Пути), прибытие на склад (оповещение прораба), и стоимость каждой позиции в заказе.
На некоторые из позиций требуется прикрепление паспорта.
Поставщиков может быть несколько по одной позиции, могут быть несколько счетов от 1 поставщика, пред и пост - оплата.
Сведя все в таблицу, лучшего варианта реализации пока не придумал.
5bf7bf4b067f1233298481.jpeg

Вопрос, каким способом построить БД для более быстрой работы. Хранить в разных таблицах все и связывать через ID?
Есть необходимость фильтрования по всем полям, выборке по поставщику, поиск заказа по накладной (счету), заказы по: объекту, менеджеру, прорабу и прочие...
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 2
ARX2
@ARX2
Web-разработчик | Священник
Я работал в одной организации, с похожими задачами, только данных было миллионы. БД - MSSQL, довольно справлялась с работой + хорошо мониторить запросы, проводить тесты, и видеть где что нагружает, и какой запрос не справляется. И почти все данные лежали в одной таблице где было более 150 колонок.

Так же были и связующие, где колонок было не мало, и приходилось связывать, иначе была полная вакханалия. Все велось к тому чтобы ограничится кол-вом запросов в базу, и в принципе все работает довольно неплохо.
Ответ написан
Комментировать
inside22
@inside22
ARX2 Разбивайте, рисуйте таблицы, потом рисуйте связи этих таблиц.
Таким образом вы сможете построить гибкую систему.

user - сотрудники
group - департаменты
supplier - поставщики

order - заказы
order_approval - в этой таблице записывать ИД-ордера и (ИД пользователя или ИД-депараментов), которые должны дать одобрение заказа.
order_supplier - связь поставщика и заказа
order_payments - оплаты

и т.д.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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