@Utarzan123
Дело в том, что товаров более 100 000. Каждые 10 минут запускается воркер, обновляющий остатки и цены с пересчетом в курсы валют. И как следствие признак «Наличие» товара Да или нет. И получается приходится обновлять эти поля в товере. У товара получается слишком много версий, что накладно хранить в базе.
Сейчас я начал хранить цены в отдельной связанной таблице и обновляю только ее. Сейчас еще планирую остаток вынести тоже в отдельную таблицу и признак available тоже в отдельную. Как считаете правильнее так будет с точки зрения проектирования?
Решения вопроса 0
Ответы на вопрос 2
@d-stream
На такое стоит идти только в угоду реальному повышению производительности.
Собственно расчет свободного остатка — штука быстрая. К примеру даже вычисляемое поле «есть ли свободный запас» при номенклатуре в 1.5 миллиона позиций и в среднем 3-4 уровнях деревьев замен/аналогов «вообще не заметно» в производительности. (MS SQL 4-8 cpu/vcpu 8-16-24 Gb RAM).
С ценами — чуть сложнее — схем ценообразования может быть множество. Поэтому лучше хранить «математику схем» и уже из этого вычислять условно конечную цену. А для нужд бухгалтерского, оперативного, управленческого учетов — вычислять в соответствии с теми нуждами.
@tsklab
