db.Key的ListProperty与App Engine中的多对多(特定情况)

时间:2012-02-13 17:29:42

标签: google-app-engine models

我见过类似问题的例子。但是,请允许我提出更具体的问题,我想证实我的理解。

我的问题:

  1. 对于db.Key的ListProperty,如果我能预测到我想要存储的最大键数,那么我 NOT 超过多少来存储在db.Key的ListProperty中到ReferencedProperty? [一般问题]因为App Engine页面在哪里说不清楚,

      

    另一个更重要的一点是你想避免过度存储   ListProperty

    中的键列表
  2. 让我们说,有些用户可以关注餐厅的活动信息。因此,用户可以将他们想要的餐馆添加到他们喜欢的列表中。有用户模型和餐厅模型。那么,我相信任何用户都不会关注超过30家餐厅?这使得db.Key的ListProperty成为理想的解决方案吗?

1 个答案:

答案 0 :(得分:2)

这里的考虑有些模糊 - 没有硬限制,除了总(编码)实体不得大于1 MB。 30键完全没问题。 100还可以。在500-1000我开始担心。 10,000,你可能会超过1 MB的限制。

另一个考虑因素是,如果您希望一次一个地添加密钥(每次读取和写入实体),您最终会进入O(N ** 2)的土地,这将使您的更新开始真正爬行慢慢地,可能在100到1000个钥匙之间。

这些注意事项对于所有ListProperties都是相同的 - 键不是特别的(您提供的引用恰好来自专注于ListProperty(db.key)的文章。)