İlişkili bir veritabanı arka planından geldiğimden, diğer birçok kişi olduğundan emin olarak, Google'da veri mağazamı oluşturmak/tasarlamak için bazı katı kurallar arıyorum App Engine. Bu tür şema içermeyen veri depolarını kurmak için başparmak insanların iyi kuralları var mı? Katıldığınızdan beri denormalize etmek gibi bazı temelleri anlıyorum, ama insanların önerdiği diğer önerileri merak ediyordum.Google App Engine Datastore ve diğer NoSQL DB'leri için şema içermeyen tasarım yönergeleri
Özellikle basit bir örnek, aramaları ve sonuçlarını depolamakla ilgili kaygılarla çalışıyorum. Mesela ben Python kullanarak Google App Engine uygulamasında tanımlanan iki model vardır:
class Search(db.Model):
who = db.StringProperty()
what = db.StringProperty()
where = db.StringProperty()
createDate = db.DateTimeProperty(auto_now_add=True)
class SearchResult(db.Model):
title = db.StringProperty()
content = db.StringProperty()
who = db.StringProperty()
what = db.StringProperty()
where = db.StringProperty()
createDate = db.DateTimeProperty(auto_now_add=True)
Ben katılamaz çünkü denormalizasyon uğruna modeller arasındaki özelliklerin bir demet çoğaltarak ediyorum Search
ve SearchResult
birlikte. Bu mantıklı mı? Veya SearchResult
modelinde bir arama kimliğini saklamam ve bunları veri deposundan aldığımda koddaki iki modeli etkin bir şekilde "katıl" mı? Lütfen bunun basit bir örnek olduğunu unutmayın. Her iki modelde çok daha fazla özellik olacak ve şu an bu yaklaşıma yaklaşma yolunda, Arama modeline koyduğum herhangi bir özelliği SearchResult
modeline de koyardım.
Mükemmel, teşekkürler dostum. – jamesaharvey