Разборчивость / поддержка кода: куда поместить операторы SQL? - PullRequest
0 голосов
/ 14 февраля 2011
  • На языке сам файл?
  • В файле со всеми операторами SQL?
  • В разных .sql файлах?
  • Другой способ?

Поделитесь своим стилем кода. :)

Ответы [ 4 ]

1 голос
/ 14 февраля 2011

В Cobol я помещаю SQL в языковой файл, но в отдельных процедурах.Таким образом я отделил бизнес-логику от логики базы данных.

В Python я поместил SQL в его собственный модуль .py.Таким образом я отделил бизнес-логику от логики базы данных.

В Java я поместил SQL в отдельный пакет.Таким образом я отделил бизнес-логику от логики базы данных.

Я не использовал другие языки, но, вероятно, отделил бы бизнес-логику от логики базы данных.

1 голос
/ 14 февраля 2011

Полагаю, вы получите столько же ответов, сколько и ответов. В любом случае, давайте спросим, ​​почему можно быть предпочтительнее других:

В самом языковом файле (я не знаю, что вы имеете в виду под языковым файлом), но позвольте мне предположить, что вы имели в виду сам язык программирования. Ну, этот подход был принят Microsoft с Linq. Это было сделано, например, в Gemstone, где языком запроса является Smalltalk (но не SQL)

Если вы поместите его в какой-то файл .sql, тогда должен быть способ адресации кода. Я думаю, что это то, что делается с помощью хранимых процедур. Примеры этого можно найти, например, в программном обеспечении Postgres Database.

Если вы поместите его в один из многих файлов, вероятно, он открыт. Например, у вас может быть один запрос на один файл. Это лучше или хуже, чем иметь хеш-таблицу с различными операторами SQL, идентифицированными по некоторому ключу.

Я вижу следующие подходы каждый день в программном обеспечении Access 1) встраивается в VBA как "просто строки" 2) положить в раздел запросов доступа 3) Я даже читал о том, как поместить эти операторы SQL в дополнительную таблицу операторов SQL.

С уважением Friedrich

1 голос
/ 14 февраля 2011

Все зависит, например:

  • в небольших сценариях обслуживания БД с простым последовательным потоком управления. Приятно видеть операторы, в которых они используются
  • программы с циклами / обратными вызовамиследует готовить заявления заранее;тогда список всех элементов рядом с функцией init / prepare имеет смысл
  • особый случай: я использую набор инструментальных сценариев, написанных на разных языках, которые делают «одно и то же»;все они получают свои операторы из файлов .txt, содержащих SQL-операторы, помеченные именем
  • «большие» приложения (должны) использовать хранимые процедуры - тогда проблема исчезает
1 голос
/ 14 февраля 2011

Даже если вы не используете платформу, MVC помогает вам оставаться в здравом уме, разделяя доступ к данным, логику и представление в отдельные языковые файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...