О КОМПАНИИ
Этот документ читается как вводное руководство для начинающих, посвященное темам 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
ССЫЛКИ
ИНИЦИАЛИЗАЦИЯ
Следующий набор инструкций описывает базовую конфигурацию базы данных и настройку 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.