Technical SEO
ORM (Object-Relational Mapping)
Описание термина
Технология для работы с БД через объекты вместо SQL-запросов. Упрощает разработку и делает код более читаемым.
Технология для работы с БД через объекты вместо SQL-запросов. Упрощает разработку и делает код более читаемым.
SQL без SQL
ORM — это прослойка между кодом и БД, которая преобразует объекты в SQL-запросы и обратно. Вместо написания SELECT * FROM posts WHERE id = 1 вы пишете Post::find(1).
Преимущества ORM:
- Читаемость — код на языке программирования, а не SQL.
- Безопасность — защита от SQL-инъекций (параметризованные запросы).
- Переносимость — легко сменить БД (MySQL → PostgreSQL) без изменения кода.
- Связи — удобная работа с отношениями (hasMany, belongsTo).
Популярные ORM:
- Eloquent — ORM в Laravel (PHP)
- Django ORM — встроенный ORM в Django (Python)
- Active Record — ORM в Ruby on Rails
- TypeORM — ORM для TypeScript/Node.js
- Sequelize — ORM для Node.js
Пример (Laravel Eloquent):
// Без ORM (чистый SQL)
$posts = DB::select('SELECT * FROM posts WHERE status = ?', ['published']);
// С ORM (Eloquent)
$posts = Post::where('status', 'published')->get();
Недостатки ORM:
Для сложных запросов (JOIN, подзапросы, агрегация) ORM может генерировать неоптимальный SQL. В таких случаях используйте Raw SQL или Query Builder.