Sequelize ORM Soft Delete ve Flag Kullanımı
Sequelize ORM Soft Delete ve Flag Kullanımı
Giriş: Soft Delete ve Flag Nedir?
Sequelize ORM, Node.js ile ilişkisel veritabanı yönetiminde sıkça tercih edilen güçlü bir kütüphanedir. "Soft delete" ve "flag" kavramları, özellikle veri bütünlüğünü korumak, admin panel ve log analizlerinde esnek çözüm geliştirebilmek için kritik öneme sahiptir. Soft delete, bir kaydın fiziksel olarak silinmesi yerine işaretlenmesi (örneğin bir deletedAt tarihi ekleyerek), flag ise kayıt üzerinde ek durumların (isActive, isPublished gibi) tutulmasını sağlar. Sequelize ORM soft delete ve flag kullanımı ile projelerinizde veri kaybı riskini azaltabilir, kullanıcı hatalarını geri alabilir hale getirebilirsiniz.
Sequelize ORM Soft Delete Kullanımı
Soft delete yapmak için Sequelize modelinizde paranoid özelliğini aktif etmelisiniz. Bu özellik sayesinde destroy fonksiyonu fiziksel silme yerine ilgili kaydın deletedAt alanını günceller ve yapılan sorgularda otomatik olarak silinen verileri gizler.
const User = sequelize.define('User', {
name: {
type: Sequelize.STRING,
allowNull: false
}
}, {
paranoid: true // Soft delete aktif!
});
// Kayıt silme (soft delete)
await User.destroy({ where: { id: 1 } });
// deletedAt alanı güncellenir, veri silinmez
// Sadece aktif kayıtlar (silinmemişler) gelir
const users = await User.findAll();
// Tüm kayıtlar (silinmiş dahil) gelir
const allUsers = await User.findAll({ paranoid: false });
Flag Kullanımı ile Daha Esnek Kontrol
Flag kullanımı, kaydın durumu üzerinde esneklik sağlar. Örneğin bir kullanıcının aktif veya pasif durumda olup olmadığını bir isActive boolean alanı ile yönetebilirsiniz. Bu sayede soft delete ile birlikte birden fazla durumda kontrol sağlayarak, örneğin geçici kapalı kullanıcılar ile tamamen silinenleri kolayca ayırt edebilirsiniz.
const User = sequelize.define('User', {
name: {
type: Sequelize.STRING,
allowNull: false
},
isActive: {
type: Sequelize.BOOLEAN,
defaultValue: true
}
}, {
paranoid: true
});
// Kullanıcı pasifleştirmek
await User.update({ isActive: false }, { where: { id: 1 } });
// Yalnızca aktif kullanıcıları almak
const activeUsers = await User.findAll({ where: { isActive: true } });
Sonuç: Soft Delete ve Flag Avantajları
Sequelize ORM soft delete ve flag kullanımı, modern uygulamalarda veri kaybı, geri alım ihtiyacı ve detaylı kullanıcı yönetimi için vazgeçilmezdir. Her iki yöntemi bir arada kullanmak, esnek ve güvenli veri yönetimi sağlar. Projenize kolayca entegre ederek hatalı silinen verileri kurtarabilir, ek durum kontrolleri ile süreçlerinizi çok daha kontrollü hale getirebilirsiniz. Özellikle admin paneli geliştirenler veya büyük veriyle çalışanlar için soft delete artı flag kullanımı önerilir.

Yorum Gönder