Genel Kullanım Alanları
Sistemi yaptığınız sırada açıkça tanımlanmamış veri yapılarınız varsa. Örneğin, kullanıcı ayarlarını nosql'de tutma eğilimindeyim. Başka bir örnek, kullanıcıların çalışma zamanında alan ekleyebilmeleri gereken bir sistemdi - RDBMS'de çok acı verici ve NoSQL'de bir esinti.
Model yapınız büyük ölçüde bir veya birkaç model nesnesi etrafında ortalanmışsa ve çoğu ilişki aslında ana model nesnelerinin alt nesneleriyse. Bu durumda, gerçek birleştirmelere oldukça az ihtiyaç duyacağınızı göreceksiniz. Temas yönetim sisteminin örneğin nosql'de oldukça güzel bir şekilde uygulanabileceğini buldum. Bir kişinin birden fazla adresi, telefonu ve e-postası olabilir. Her birini ayrı bir masaya koymak yerine, hepsi aynı modelin bir parçası haline gelir ve bir kişi nesneniz vardır.
Verilerinizi RDBMS tarafından genellikle gerekli olan tek bir yekpare sunucuya sahip olmak yerine birden çok sunucuda kümelemekten faydalanmak istiyorsanız.
Önbelleğe almak. Ana veritabanınız olarak RDBMS'ye bağlı kalmak isteseniz bile, sorgu sonuçlarını önbelleğe almak veya sayaçlar gibi verileri tutmak için NoSQL veritabanı kullanmak yararlı olabilir.
Belgeleri saklama. Tutarlı belgeleri saklamak istiyorsanız, bir veritabanında bazı NoSQL veritabanları (MongoDB gibi) bunları saklamakta uzmanlaşmıştır.
Katılmaya ne dersiniz?
Dürüst olmak gerekirse, hiçbir katılma ilk başta benim için oldukça korkutucu geliyordu. Ancak işin püf noktası SQL'de düşünmeyi bırakmaktır. Uygulamanızı çalıştırırken bellekte bulunan nesneyi düşünmeniz gerekir. Bunlar, az çok NoSQL veritabanına alan olarak kaydedilmelidir.
Tam nesne grafiğinizi, alt nesnelerle depolayabildiğiniz için, birleştirme gereksiniminin çoğu ortadan kaldırılır. Ve ihtiyacınız olanı bulursanız, mermiyi ısırmanız ve her iki nesneyi de almanız ve uygulama kodunuza katılmanız gerekir.
Neyse ki, şemanızı doğru ayarladıysanız, çoğu sürücü sizin için katılmayı yapabilir.
Daha fazla okumak için aslında Martin Fowler'ı tavsiye ederim .