Я бы сделал вывод, что он означает, что он основан на петле, в отличие от программирования на основе набора, что является лучшим способом кодирования SQL.
Например, в ментальной модели, основанной на циклах, вы должны сменить набор строк, выполнив запрос, выбирая строки один за другим, изменяя значение поля и отправляя каждую строку обратно в база данных. Это запускает N + 1 SQL-запросы для изменения N строк. Это часто является следствием использования инструментов ORM, таких как Entity Framework или Active Record.
В ментальной модели на основе набора вы должны использовать один оператор SQL UPDATE
для изменения всех строк в одной операции. Вам не нужно возвращать данные обратно в приложение, все это происходит на сервере базы данных. И вам нужно запустить только один оператор SQL. Это более эффективно, но большинство инструментов ORM не поддерживают этот метод (за исключением того, что вы можете обойти ORM и выполнить собственный SQL напрямую).
Re комментарии от других людей: Мы можем придумать ответы на то, что мы думать «петли на основе» означает, но это никогда не будет ответить, что ваш коллега имел в виду, когда он сказал это. Если бы он отступил, то он, возможно, не знал, как быть более четко сформулированным. Если это так, вы никогда не узнаете, что он имел в виду.
Re ORMs умнее, чем в наши дни, я хотел бы услышать несколько примеров. Я не отрицаю этого - я действительно заинтересован в примере ORM, который может вызывать обновление по строкам, которые он не выбрал. То есть, в интерфейсе «ORMish», а не путем нарушения абстракции.
Я не уверен, но он, возможно, имел в виду, что вместо того, чтобы выполнять правильный запрос и отбрасывать данные в наборе, они ранее захватили каждую строку в таблице (например, как курсор) и проверили ее на посмотрите, следует ли включить его в результаты. –
Ну, я предполагаю, что это когда ваш код - одна огромная масса 'GOTO's – aviraldg
. Я также не знаю, что это значит. Это те моменты, когда вы должны отпустить свой страх выглядеть глупым и просто спросить. В 99% случаев люди поймут, что они расплывчаты или говорят неформально, и они объяснят, не думая об этом. В 1% случаев, когда это действительно должно было быть чем-то, что вы знали, вы можете смиренно выразить удивление тем, что не знали об этом. – PeterAllenWebb