Как эффективно поддерживать ежедневный запас для более чем 1000 продуктов в MySQL?
У меня 1000+ продуктов. Мне нужно поддерживать запас на ежедневной основе.
Схема таблицы продуктов
CREATE TABLE Product (
ProductId INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(30) NOT NULL,
)
Схема таблицы запасов
CREATE TABLE StockInfo (
StockInfoId INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
StockDate Date NOT NULL,
ProductId INT NOT NULL,
OpeningStock INT NOT NULL,
Purchase INT DEFAULT 0,
Sales INT DEFAULT 0,
ClosingStock INT DEFAULT 0
)
Каждый день стол StockInfo
обновляется. Колонка OpeningStock
обновляется заданиями cron, логика:
в последние дни ClosingStock = OpeningStock + Purchase - Sales
сегодняшними OpeningStock = last day ClosingStock
Этот подход потребляет большие строки и, следовательно, влияет на производительность.
Примечание: каждый день у каждого продукта есть по крайней мере одна продажа и покупка
Пожалуйста, помогите мне изменить эту логику.