Как эффективно поддерживать ежедневный запас для более чем 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

Этот подход потребляет большие строки и, следовательно, влияет на производительность.

Примечание: каждый день у каждого продукта есть по крайней мере одна продажа и покупка

Пожалуйста, помогите мне изменить эту логику.

0 ответов

Другие вопросы по тегам