Как правильно хранить приходы/расходы в интернет-магазине и вычислять наличие?

111
20 апреля 2021, 01:10

Мне нужно хранить операции в интернет-магазине: "приходы", "расходы", "возвраты", "брак". Мне нужно иметь возможность формировать отчеты по периодам с полями "было" и "стало". Мне нужно выводить актуальное наличие посетителям магазина. За пару лет сформируется таблица в несколько миллионов строк. Понятно, что при отображении наличия будет затронута небольшая часть. Но при формировании отчета учитываются все модели. Нужно ли мне хранить отдельно актуальное наличие? Нужно ли мне сохранять историю наличия, например, ежеквартально, чтобы быстрее считать "было" и "стало" исходя из нее?

Answer 1

Тут очень зависит от многих факторов- от нагрузки, структуры БД, требований... Актуальное наличие по идее достаточно популярный запрос к БД в магазине, поэтому лучше хранить отдельно. Если у вас операции реализованы, как таблица или таблицы фактов, то стоит ли хранить еще ежеквартально или еженедельно опционален, т.е. если есть смысл, читай как часто смотреть за какой-то период, то реализовывайте. Если маленькая нагрузка, то и триггер можно. Если нагрузка большая- кеширование вам в помощь. Главное данные не потерять.

Answer 2

Можно рассмотреть такой вариант:

  1. Использовать реляционную БД для хранения актуальных данных + кеш, чтоб пользователю быстро отдать инфу о наличии товара.
  2. Использовать что-то типа elasticsearch, clickhouse или что то подобное для большого хранения данных и быстрого поиска по ним, другими словами OLAP системами или хранение истории товара (приход, расход, возврат и т. п.)

По этой истории можно строить отчеты, если данных очень много, то можно периодически агрегировать, допустим за день, неделю и т. д.

READ ALSO
Сортировка по трём таблицам, возможно JOIN [закрыт]

Сортировка по трём таблицам, возможно JOIN [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

107
php curl авторизация на сайте с другого IP

php curl авторизация на сайте с другого IP

Думаю реализовать такой скриптик: Авторизуюсь у себя в браузере Сохраняю строку с cookie и передаю ее в скрипт на сервере

97
Помогите понять не сложный PHP

Помогите понять не сложный PHP

Я в PHP вообще ни бум-бумJS немного шарю

206