我正在爲經典的「用戶帖子」和「標籤」問題設計谷歌數據存儲架構。關係索引實體和投影查詢
這page建議關係指數實體模型。基本上它將可搜索的標籤或關鍵字放置在子實體中用於過濾的列表屬性以及父實體中的必要屬性。據我瞭解,這種方法是在查詢時減少序列化開銷。
class Post(db.Model):
title = db.StringProperty()
post_date = db.DateTimeProperty()
class Tags(db.Model):
tags = db.StringListProperty()
mytags = Tags(parent=post, tags=many_tags)
- 鑑於projection queries可以得到屬性的子集,是關係指數實體仍然需要減少列表屬性的序列化的開銷?
注意:投影查詢有limits;關係指數實體不。
關係指標實體是否使查詢更加困難?說我想過濾在過去7天內創建的帖子的標籤'汽車'的帖子。標籤和post_date是不同的,有沒有簡單的方法來做到這一點?
關於爆炸指數,關係指數實體是否減少了爆炸指數的機會,因爲它將列表屬性置於不同的類型?
感謝您提前回答。
附註:從https://cloud.google.com/appengine/docs/standard/python/datastore/api-overview:「注意:強烈建議開發人員構建新應用程序以使用NDB客戶端庫,該庫有幾個與此客戶端庫相比的優勢,例如通過Memcache API進行自動實體緩存如果您當前正在使用舊版DB客戶端Li brary,閱讀DB到NDB移植指南「 –