Oturum depolama alanı ve veritabanı depolama alanının özel olduğunu varsayıyorsunuz. Onlar değil. Ama başladıklarını varsayarak başlayalım.
Oturum depolamanın avantajı üç yönlüdür:
- Veritabanına açıkça veri eklemenize gerek yoktur. Sadece bir oturum değişkeni belirlediniz ve işiniz bitti. İşlevsel olarak basit ve düşük riskli.
- Bir kullanıcı ziyaretinin ve alışveriş sepetinin yaşam döngüsünü kapsayıcılar / çerçeveler sizin için yaptıkça yönetmeye gerek yok
- Genellikle eski boş oturumların otomatik temizliği sizin için yapılır.
Oturum depolamanın dezavantajları:
- Çoğaltmayı araştırmadığınız sürece oturum benzeşimi
- Oturum durumunun diske çoğaltılmasını veya el ile kalıcılığını araştırmazsanız, yük devretme olmaz, bu da karmaşıklaşabilir.
- Tüm oturumlar bellekte saklanmalıdır. Çoğaltma kullanıyorsanız, bu yükseltilir.
Veritabanı depolamanın avantajları:
- Oturum benzeşimi veya durum çoğaltması hakkında endişelenmenize gerek yok. Tüm istekleri yuvarlayabilirsiniz.
- Uygulamada daha az bellek ek yükü.
- Sipariş tamamlanırsa, her şey yine de veritabanında sona erer, bu nedenle veriler zaten mevcut olduğundan bu tamamlamayı kolaylaştırabilir.
Veritabanı depolamanın dezavantajları:
- Terk edilmiş arabaları - bazı anonim kullanıcılar alışveriş sepetlerine bir ürün ekledi ve kayboldu. Bir tür sona erme süreciniz olmadığı sürece bu veriler sonsuza kadar dolanır.
- Kullanıcıları izlemenin ve belirli bir istek için bunun mevcut veya yeni bir göz atma oturumunu temsil edip etmediğini bulmanın bir yolunu bulmanız gerekir. (evet, bir çerez kullanıyorsanız bu muhtemelen kolaydır, ancak iki kullanıcının aynı kimliğe sahip olmamasını nasıl sağlarsınız?).
- Daha fazla kod
Hangi platformu kullandığınızdan bahsetmediniz. Ben bir istek / yanıt döngüsü ömrü boyunca, sadece veritabanından yükleme ve veritabanına geri kaydetme oturumu veri sadece bellekte bulunan bir veritabanı destekli oturum kullanan bir yaklaşım ararım. Bu bana geçmişte iyi hizmet etti.
Veritabanı destekli bir oturumun avantajları:
- Sunucu benzeşmesine gerek yok.
- Uygulama sunucusu belleğinde kolay
- Boşta / terk edilmiş oturum verileri sizin için temizlenir.
- Kullanıcı ilk ziyaretinin yaşam döngüsü, tekrar ziyaret, oturum sonu sizin için anlaşılır.
- Kolay kodlama
Veritabanı destekli bir oturumun dezavantajları:
- Konfigürasyon - kapsayıcınızın PHP, Java EE (Tomcat, Jetty, JBoss, vb.), Node.js + express.js olup olmadığını araştırmanız veya bunu desteklememesi ve doğru yapılandırmayı sağlamanız gerekir.
- İstek başına 2 veritabanı işlemi eklediğiniz için bunu yüklemeniz gerekebilir.
Birisinin daha önce değindiği üçüncü bir olasılık var. Oturumların kullanımını tamamen atlayabilir ve her şeyi bir çereze veya html yerel depolama alanına gömerek istemci tarafı depolamayı kullanabilirsiniz.
Bunun artılarını / eksilerini size bir egzersiz olarak bırakacağım, ancak html5 depolama için tarayıcı uyumluluğunun dikkatlice gözden geçirilecek bir şey olabileceğine dair bir ipucu vereceğim.
Sizin için gerçekleri özetledim. Umarım bu durumunuz için doğru kararı vermenize yardımcı olur.