Sequelize ORM Scopes ve Query Options
Sequelize ORM Scopes ve Query Options
Sequelize'da Scope ve Query Option Kavramı
Sequelize, Node.js için popüler ve güçlü bir ORM (Object-Relational Mapping) kütüphanesidir. Veritabanı sorgularını kolayca yönetmek ve optimize etmek için "scope" ve "query option" kavramlarını sunar. Scope ile model seviyesine önceden tanımlanmış filtreler ekleyebilir, query options ile ise sorgularınızı dinamik olarak özelleştirebilirsiniz. Bu makalede, Sequelize ORM Scopes ve Query Options başlığının detaylarını, kod örneklerini ve en iyi uygulamaları bulacaksınız.
Scope ve Query Options Nasıl Kullanılır?
Scope'lar, model tanımında ortak filtreleri merkezi olarak kullanmak için idealdir. Örneğin, sadece aktif kullanıcılara ait kayıtları çoğu yerde çekiyorsanız, bir active scope'u şöyle tanımlayabilirsiniz:
const User = sequelize.define('User', {
username: Sequelize.STRING,
status: Sequelize.STRING,
}, {
scopes: {
active: {
where: {
status: 'active'
}
}
}
});
Tanımlanan scope'u uygulamak için şunları kullanabilirsiniz:
// Yalnızca aktif kullanıcılar
User.scope('active').findAll().then(users => {
console.log(users);
});
Query option'lar ise doğrudan sorguya özel parametrelerdir. Örneğin, belirli alanları seçmek veya sıralama yapmak için kullanılır:
User.findAll({
attributes: ['username'],
where: { status: 'active' },
order: [['username', 'ASC']]
}).then(users => {
console.log(users);
});
Scope ve Query Option'ların Birlikte Kullanımı
Scopes ve query options birlikte kullanıldığında, hem tekrarı önler hem de esnek sorgular oluşturabilirsiniz:
User.scope('active').findAll({
limit: 10,
order: [['createdAt', 'DESC']]
}).then(users => {
console.log(users);
});
Sonuç ve En İyi Pratikler
Sequelize ORM Scopes ve Query Options, Node.js tabanlı projelerinizde kodunuzu daha temiz, esnek ve güvenli hale getirir. Scope'lar ile sık kullanılan filtreleri model seviyesinde tanımlayabilir, query option'lar ile ise her sorguya özel esneklik kazandırabilirsiniz. Büyük ölçekli projelerde yeniden kullanılabilirlik ve okuma kolaylığı için scope kullanımı teşvik edilir. Query options ile de verilere doğrudan erişim ve özelleştirilmiş sorgular mümkün olur.
Sonuç olarak, Sequelize ORM Scopes ve Query Options konusunu iyi öğrenmek, daha hızlı geliştirme süreçleri ve daha bakımı kolay kod tabanları sağlar. Siz de kendi projelerinizde bu iki güçlü özelliği etkin şekilde kullandığınızdan emin olun.

Yorum Gönder