Необработанный SQL с Express без ORM - PullRequest
0 голосов
/ 07 октября 2018

Я хочу использовать необработанные запросы SQL в своем приложении, но у меня есть несколько вопросов о том, как структурировать мое приложение.

Некоторая справка:

  1. Я пишу JSON API с Express и Postgres.
  2. В настоящее время я не использую ORM.Я использовал Sequelize раньше, но я не верю, что запросы оптимизированы, поэтому я не решаюсь его использовать.

  3. Я использую camelCase в своем коде, но Postgres не чувствителен к регистру,поэтому для удобства чтения я использовал under_scores в своих таблицах БД.Мне постоянно приходится выполнять такие запросы: SELECT first_name AS "firstName" from users; Когда запросы становятся больше, их практически невозможно прочитать, поскольку в шаблонах строк js нет подсветки синтаксиса SQL.

  4. Я чувствуюв моих запросах слишком много повторений, но это ожидаемо.

Что я думаю:

  1. Мне не удалось найти код Visual Studioрасширение, которое может выделить SQL внутри файлов и строк js.Если бы он был, я мог бы обойтись.
  2. Я мог бы записать все свои запросы в файлы .sql, чтобы иметь возможность подсветки синтаксиса и загружать их все в память, когда мое приложение начинает предотвращать слишком много операций ввода-вывода., поскольку это было бы против рассуждений, почему я в первую очередь использую сырой SQL.

У кого-нибудь была эта проблема раньше?Как вы структурируете свое приложение при использовании сырого SQL с Postgres и Express?

1 Ответ

0 голосов
/ 07 октября 2018
  1. Обязательно сохраните все сценарии sql в соответствующих .sql файлах.
  2. Придерживайтесь разумного соглашения об именах.Придумайте тот, который вам удобнее: в будущем он позволит создавать полезные инструменты на базе кода, автоматически выполняя множество скучных вещей и делая вас намного счастливее.
  3. Если вы быстро усложняетесь, сгенерируйте хотя бы часть дубликата / обычно используемого sql.Подумайте о том, чтобы в ваших файлах были несколько простых заполнителей, например {{ firstName }}, что переводится как first_name AS "firstName".Такой перевод должен произойти только один раз - когда вы загружаете источник .sql.Это более сложный и сильно зависит от ваших задач.Иногда такой подход бесполезен, иногда - полезен.
...