如何在Google App Engine上實現與NDB的聚合或合成?取決於用例的最佳方式是什麼? 謝謝!如何在GAE上實現與NDB的組合/聚合
我試過使用重複屬性。在這個非常簡單的例子中,一個項目有一個標籤鍵列表(我選擇用這種方式編碼,而不是使用StructuredProperty,因爲許多Project對象可以共享標籤對象)。
class Project(ndb.Model):
name = ndb.StringProperty()
tags = ndb.KeyProperty(kind=Tag, repeated=True)
budget = ndb.FloatProperty()
date_begin = ndb.DateProperty(auto_now_add=True)
date_end = ndb.DateProperty(auto_now_add=True)
@classmethod
def all(cls):
return cls.query()
@classmethod
def addTags(cls, from_str):
tagname_list = from_str.split(',')
tag_list = []
for tag in tagname_list:
tag_list.append(Tag.addTag(tag))
cls.tags = tag_list
-
編輯(2): 感謝。最後,我選擇創建一個代表兩個實體之間關係的新Model類「關係」。這更像是一個協會,我承認我的第一個設計沒有適應。
我引用了這個問題(當然,這個,如果你有很多數據的聚合纔有效):http://stackoverflow.com/questions/13930573/ndb-modelling-one一對多的優點 - 重複性 - 與外鍵 – deweyredman