JSON ağacında Veriyapısı Modeli Nasıl Oluşturulur
Tüm gerçek zamanlı veritabanları depoları json nesnesi kullanır.Bulut depolamada json ağacı şeklinde tutulur.SQL veritabanlarına benzemez tablolar ve kayıtlar yoktur.
JSON a verieklendiğinde ilişkili anahtarla varolan JSON varolan json yapısındaki bir düğüm haline gelir.
Kullanıcı kimlikleri ve semantik isimler gibi kendi kendi anahtarlarımıza oluşturabiliriz veya push() fonksiyonu bunu bizim için yapar.
Best practices for data structure(veri yapısı için en iyi yöntem)
Avoid nesting data(iç içe yerleştirilmiş veri)
İç içe geçmiş 32 seviyeye kadar kullanım iznimiz olduğundan bunun bazı devantajları olabilir.Mesala başka bir veritabanında yada kendi veritabanımızdan bir düğüme okuma yazma izni verdiğimizde bu düğüm altındaki tüm düğümlerede erişim izni vermiş olursunuz.Bu nedenle çok fazla iç içe tutulmuş veriler fazladan verileride çekme problemini ortaya çıkarır.Bu yüzden tasarım yaparken buna dikkat etmek gerekir.
Aşağıdada iç içe geçmiş verilere kötü olan bir örnek bulunmakta;
Bu iç içe geçmiş tasarım ile, veriler arasında yineleme sorunlu hale gelir. Örneğin, sohbet görüşmelerinin başlıklarını listelemek, tüm üyeler ve mesajlar da dahil olmak üzere tüm sohbet ağacının müşteriye indirilmesini gerektirir.Buda istenmeyen bir durumdur.
Flatten data structures(Düz veri yapısı)
Veriler yerine denormalizasyon olarak da adlandırılan ayrı yollara bölünürse, gerektiğinde ayrı aramalarla verimli bir şekilde indirilebilir.
Şimdi, konuşmalar başına yalnızca birkaç bayt indirerek chat listesinde yineleme yapmak, bir kullanıcı arayüzünde chat listelemek veya görüntülemek için hızlı bir şekilde meta veriler getirmek mümkündür. İletiler, gelinceye kadar ayrı olarak alınabilir ve görüntülenebilir; böylece kullanıcı arayüzünün hızlı ve duyarlı kalması sağlanır.
Create data that scales(Ölçeklendirilebilen Veriler oluşturun)
Uygulamar oluşurturulurken bir listenin alt kümesini çekmek hepsini çekmekten daha iyidir.Özelliklede liste binlerce kayıt içeriyorsa bu daha mantıklı olacaktır.. . bu ilişki statik ve tek yönlü iken, alt nesneleri ebeveylerin altına yerleştirebilirsiz.
Bazen bu ilişki daha dinamik veya bu verileri normalleştirmek gerekli olabilir. Verilerin Alınması bölümünde anlatıldığı gibi, verilerin bir alt kümesini almak için bir sorgu kullanarak verileri Retrieve Data.(deformalize)edebilirsiniz..
Ancak bu bile yetersiz olabilir. Örneğin, kullanıcılar ve gruplar arasında iki yönlü bir ilişki düşünün Kullanıcılar bir gruba üye olabilir ve gruplar bir kullanıcı listesinden oluşur. Bir kullanıcının hangi gruplara ait olduğuna karar vermeye geldiğinde, işler karmaşıklaşıyor.
Olması gereken, kullanıcının ait olduğu grupları listelemek ve yalnızca bu gruplar için veri getirmek..Burada grupların indexi bize yardımcı olabilir.
hem ardanın kayıt altındaki hem de grubun altındaki ilişkiyi depolayarak bazı verilerin çoğaltığını görebilirsiniz. Şimdi alovelace bir grup altında dizine eklendi ve techpioneers Arda'nın profilinde listeleniyor. Dolayısıyla Arda'yı gruptan silmek için, iki yerde güncellenmelidir
Bu, iki yönlü ilişkiler için gerekli bir artıklıktır. Kullanıcıların veya grupların listesinin milyonlarca ölçeklendiğinde veya Realtime Database güvenlik kuralları bazı kayıtlara erişimi engellediğinde bile, Ada'nın üyeliklerini hızlı ve verimli bir şekilde almanızı sağlar
Kimliği anahtar olarak listeleyerek ve değeri true olarak ayarlayarak verileri tersine çeviren bu yaklaşım, bir anahtarın / users / $ uid / groups / $ group_id okunması ve null olup olmadığının denetlenmesi kadar basit bir şekilde kontrol edilmesini sağlar. Dizin daha hızlıdır ve verileri sorgulamak veya taramaktan daha etkili bir sonuç verir.
Show Conversion Code Hide Conversion Code Show Emoticon Hide Emoticon