我正在 GAE 中开发一个投票应用程序,我希望能够支持大量选民(比如 100,000)。我担心能够在不达到实体大小上限或任何其他限制的情况下执行此操作。这是我的实体关系的相关部分:
class Election(db.Model):
tmp_voters = db.StringListProperty(default = "")
class Voter(db.Model):
election = db.ReferenceProperty(Election, collection_name = "voters")
当用户编辑选举时,我将选民电子邮件地址列表放入名为 tmp_voters 的 StringListProperty 中。就在选举开始之前,我为每个投票者创建一个投票者实体,每个投票者实体都有对选举实体的引用。
看来对于大量选民来说,tmp_voters会导致Election实体超出限制。是对的吗?我该如何解决这个问题?使用 blob 是一个很好的解决方案吗?
拥有大量投票者实体(每个实体都引用选举实体)是否会导致选举实体太大?即,添加对选举实体的引用是否会增加选举实体的大小?
对于大量选民,我还应该担心其他限制吗? (配额除外)
最佳答案
在另一个实体中添加对实体的引用对引用的实体没有任何影响,除了自动生成的反向引用查询将返回一个结果之外。
我不清楚 tmp_voters 的用途,但是,是的,如果 ListProperty 变得太大,您将会遇到问题,尽管可能与实体大小无关; ListProperty 只能包含大约 5000 个条目,并且您不会使用 1 MB 的空间来保存 5K 电子邮件地址。
关于python - Google App Engine 中的最大实体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5752157/