Архитектура БД для хранения остатков

155
22 марта 2019, 04:30

Всем привет. Есть БД с таблицами:

  • products(id, category_id, name, price)
  • components(id, name)
  • product_component (product_id, component_id, count)

Возникла необходимость добавить отчетность по наличию компонентов. Думаю реализовать это с помощью 1 таблицы:

  • components_storage (type, component_id, count)

Где type - это тип действия (закупка, продажа или списание). Но из этого выходит несколько проблем:

  1. Большой объем таблицы. Таблица очень быстро заполнится данными, поскольку сейчас ежедневно в базу приходит по ~1000 заказов.
  2. Невозможно добавить для каждого типа какие-либо данные. К примеру, для поставки - это поставщик, цена закупки. Для списания - причина списания.

В связи с этим вопрос. Правильно ли будет Разделить закупки, продажи и списания на разные таблицы? Т.е. сделать 3 таблицы: component_procurements, component_sales и component_offs?

READ ALSO
Обновление primary key при обновлении записи MySQL

Обновление primary key при обновлении записи MySQL

Возможно ли выполнить запрос который обновит не только данные в записи таблицы, но и uid(primary key) записи на новый(последний) без риска получить...

143
500 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation 'like'

500 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation 'like'

используется joomla сайт мультиязычный, есть самописные модули, при поиске по модулю выходила ошибка

189
Не добавляет данные в базу данных mySQL. ER_BAD_FIELD_ERROR: Unknown column 'adad' in 'field list'

Не добавляет данные в базу данных mySQL. ER_BAD_FIELD_ERROR: Unknown column 'adad' in 'field list'

Хочу через пост запрос добавить в таблицу несколько новых полей которые ввел пользователь

183