Если вы добавите логику на сервер приложений или базу данных

Предположим, у меня есть 5 магазинов в 5 разных городах. Я хочу узнать, сколько я заработал в день на город в этом месяце.

У меня есть 2 варианта.

1) Логика на сервере приложений:

for (each city)
  for (each day) {
      Query(city, day);
  }
}

Это приведет к запросам города * день.

2) Логика на сервере БД: добавьте один сложный запрос агрегации.

Какой из двух вариантов предпочтительнее? Ищете плюсы и минусы обоих? Какой из них выглядит более читабельным?

1 ответ

Решение

Не имеет никакого смысла многократно запрашивать БД для данных из одной и той же таблицы (как я понимаю, как это будет выглядеть) и обрабатывать результаты самостоятельно, когда база данных может сделать это за вас за один раз. Вы бы поставили ненужную нагрузку на сеть, базу данных и ваше приложение.

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