Pull to refresh
-1
0
Send message

Кстати, про min/max даты и SQL.
Рассмотрим кейс.
Есть уникальные иденты, строковые. Назовем поле IdentObj. К примеру, "00:001", "02:0002" и т.д.
И есть данные, периодически поступающие из внешней системы. Привязанные к IdentObj. Данные пишутся в реляционную БД. Т.е. на каждое значение в IdentObj есть несколько записей в СКЛ таблице, с разными датами поступления.

Нужно для каждого значения идента в IdentObj выбрать свежие записи - т.е. записи с max датой поступления (в столбце enterdate) в разрезе каждого IdentObj.
Далее полученную выборку можно обогатить данные сцеплением связанных таблиц и т.д.

Вопрос - как получить такую выборку без SQL в GD?

Видится, что в алгоритме придется вытягивать ВСЕ записи из СКЛ таблицы (что уже плохая идея). Создать объект типа HashMap, в котором ключом будет значение Идента из IdentObj, а в Value сохранять max дату. И еще куда-то нужно сохранять данные полей datacol1, datacol2 и пр.

В SQL задача выборки решается относительно несложным запросом, с парой табличных выражений:

Понял, спасибо! За 3.5 года применения считаю платформу GD мощной и гибкой в реальной работе.

  • Чрезмерное использование SQL. Стремитесь минимизировать SQL внутри алгоритма.

Доброго дня. Скажите, пожалуйста, чем применение SQL такую немилость вызвало? Ведь грамотно написанный СКЛ источник отработает быстрее, чем в цикле крутить объекты с фильтрами. Особенно если в СКЛ несколько таблиц соединено сложной логикой.
Можно как-то раскрыть эту мысль на примере?
П.С: с платформой GD знаком 3.5 года.

Потрясающе. Спасибо. Зацепило.

Information

Rating
4,538-th
Registered
Activity