О КОМПАНИИ

Этот документ читается как вводное руководство для начинающих, посвященное темам ORM (объектно-реляционные модели) и тому, как их можно реализовать для упрощения запросов к базе данных.

Мы будем использовать Javascript в качестве языка программирования и Sequelize в качестве ORM.

Sequelize - это основанная на обещаниях ORM Node.js для Postgres, MySQL, MariaDB, SQLite и Microsoft SQL Server. Использование sequelize позволяет запрашивать базу данных с использованием javascript вместо SQL-запросов и требует лишь незначительных изменений конфигурации в зависимости от поставщика.

Раздел создания базы данных / таблицы предполагает знание SQL новичка.

Общие концепции из этого руководства по-прежнему применимы к другим языкам и ORM.

ПРЕИМУЩЕСТВА

  • ORM умеет писать SQL для конкретного поставщика
  • Синтаксис SQL незначительно меняется в зависимости от поставщика и может меняться со временем.
  • Используйте javascript вместо SQL
  • Удобство для пользователя - отличная документация
  • Можно добавлять ограничения через табличную модель через ORM

ССЫЛКИ

  1. Продолжить документацию
  2. Документация PostgreSQL
  3. Ссылка на Github с кодом

ИНИЦИАЛИЗАЦИЯ

Следующий набор инструкций описывает базовую конфигурацию базы данных и настройку Sequelize.

  • Создайте базу данных под названием «orm_test» (для согласованности изображение кода можно разместить здесь, если хотите)
  • Создайте таблицу «пользователи», а также атрибуты «first_name» и «last_name».

  • Вставьте фиктивные данные в таблицу «пользователи»

  • Ниже представлена ​​итоговая таблица «пользователей».

  • Установите пакеты «sequelize» и «pg» (node-postgres).

npm install pg sequelize - сохранить

  • Требовать «продолжение»

const Sequelize = require («продолжение»);

  • Инициализировать соединение между postgreSQL и sequelize.

Примечание.

Для временных меток установлено значение false, чтобы еще больше упростить наш пример.

Если для временных меток установлено значение true, нам потребуется создать поля createdAt и updatedAt в базе данных.

  • Инициализировать модель пользователя.
  • Это позволит нам манипулировать базой данных, используя объекты вместо SQL-запросов.

ЗАПРОС

В этом разделе будут продемонстрированы несколько избранных различных типов запросов, которые можно выполнить просто с помощью ORM вместо более сложных SQL-запросов.

ВЫБРАТЬ → НАЙТИ

В приведенном ниже примере демонстрируется простой запрос выбора и то, как его можно создать с помощью Sequelize.

ВСТАВИТЬ → СОЗДАТЬ

В приведенном ниже примере демонстрируется простой запрос на вставку и то, как его можно создать с помощью sequelize.

МАССОВОЕ СОЗДАНИЕ / ВСТАВКА

В приведенном ниже примере демонстрируется простой запрос массовой вставки и то, как его можно создать с помощью Sequelize.

УДАЛИТЬ → УНИЧТОЖИТЬ

В приведенном ниже примере демонстрируется простой запрос на вставку и то, как его можно создать с помощью Sequelize.

ОБНОВЛЕНИЕ → ОБНОВЛЕНИЕ

В приведенном ниже примере демонстрируется простой запрос на обновление и то, как его можно создать с помощью sequelize.

ОБНОВЛЕНИЕ МОДЕЛИ ОБЪЕКТА С ОГРАНИЧЕНИЯМИ

Первоначальная объектная модель была простой и не содержала никаких ограничений. Однако в приведенном ниже примере мы обновили модель, добавив в нее дополнительный раздел allowNull: false. Этот новый фрагмент кода гарантирует, что все записи в пользовательской таблице должны иметь поле first_name.

Примечание: схема PostgreSQL не имеет ограничений, но ORM есть.

Давайте посмотрим, что произойдет, когда мы попытаемся добавить запись без поля first_name.

Как показано ниже, даже несмотря на то, что схема таблицы пользователей базы данных не имеет ограничения на поле first_name, ограничение ORM для first_name предотвращает добавление записи.

РЕЗЮМЕ

В этом руководстве мы выполнили простые запросы к базе данных с помощью ORM Sequelize.

Опять же, преимущество использования Sequelize заключается в том, что он позволяет нам использовать javascript вместо SQL для запросов к базе данных, что упрощает наш код и делает его более читаемым, а также с несколькими незначительными изменениями в коде (часть инициализации - соединение между Node.js и базу данных), SQL, созданный ORM, может быть изменен в зависимости от поставщика.

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

Вот сообщение на StackOverflow о том, почему вам следует использовать ORM.