【发布时间】:2013-03-13 04:30:52
【问题描述】:
假设我有一个图片库,一张图片可能有 10 万以上的粉丝。哪个ndb设计效率更高?
class picture(ndb.model):
fanIds = ndb.StringProperty(repeated=True)
... [other picture properties]
或
class picture(ndb.model):
... [other picture properties]
class fan(ndb.model):
pictureId = StringProperty()
fanId = StringProperty()
您可以添加到 ndb 重复属性的项目数量是否有任何限制,并且在重复属性中存储大量项目是否会影响性能?如果使用重复属性的效率较低,那么它们的预期用途是什么?
【问题讨论】:
-
与答案无关,但我建议您遵循约定.. 类名
CamelCase和属性名lower_case_underscore.. -
对于
pictureId,也可以使用ndb.KeyProperty(kind=picture),就像您在当前模型中所拥有的一样。以及fanId = ndb.KeyProperty(kind=fan, repeated=True)而不是StringProperty,以便更好地处理实体。
标签: python-2.7 google-app-engine google-cloud-datastore app-engine-ndb