@Urukhayy

(MVC) Хранить ли сумму в модели?

В базе данных на Mongo (JSON-хранилище) документ содержит массив объектов:

{
    myArray: [{a: 1}, {a: 2}, {a: 3}, {a: 4}]
}


Для приложения требуется знать сумму всех a в массиве myArray. Нужно ли хранить это как свойство модели, и при изменении массива обновлять свойство?

{
    myArray: [{a: 1}, {a: 2}, {a: 3}, {a: 4}],
    sum_a: 10
}


Или свойство суммы не хранить и при каждом запросе реактивно пересчитывать сумму, пробегаясь по массиву? А если документов много извлекается, не затратно ли каждый раз впустую считать то же самое?
  • Вопрос задан
  • 155 просмотров
Пригласить эксперта
Ответы на вопрос 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Есть такое в целом правильное мнение, что любую задачу нужно начинать с SQL и 3й нормальной формы и только потом, исходя из профиля нагрузки аккуратно вводить денормализацию и дублирование данных.

Поскольку у Вас уже Монго - совет в целом запоздал, но все же применим и тут.

А если документов много извлекается, не затратно ли каждый раз впустую считать то же самое?
Никто кроме Вас - не может замерить это в живом проекте на живой задаче и не сравнит с затратами на обновление при сохранении.

В каких-то случаях выгодней считать не лету.
В каких-то случаях выгодней кешировать и пересчитывать при изменении.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы