我想在Google App Engine中拥有我的数据库模型的属性,我不确定哪个类别效果最好。我需要它是一个类似于SO上的标签的标签云。 text属性是最好的还是我应该使用字符串属性并使其重复= True。
第二个似乎对我来说最好,然后我可以用逗号分隔标记作为分隔符。我的目标是能够搜索这些标签并计算每种标签的总数。
这看起来像是一个合理的解决方案吗?
答案 0 :(得分:1)
这可能会引起您的兴趣,具体取决于您想要做什么。
在Google App Engine上开发高效的应用程序时,您需要注意实体更新的频率。虽然App Engine的数据存储区可以扩展以支持大量实体,但请务必注意,您只能期望每秒更新任何单个实体或实体组大约五次。这是一个估计,实体的实际更新速率取决于实体的几个属性,包括它有多少属性,有多大,以及需要更新多少索引。虽然单个实体或实体组对其更新速度有限制,但App Engine擅长处理分布在不同实体上的许多并行请求,我们可以通过使用分片来利用这一点。
问题是,如果您有一个想要更新的实体,该怎么办? 比一秒快五倍?例如,你可以算一下 投票中的投票数,评论数,甚至是数字 您网站的访问者。
所以你要创建一个像:
这样的标签increment(tag)
如果它不存在,也会创建它。
要计算
get_count(tag)
但是,是的,您可以创建一个重复属性,它本质上是一个列表并存储并加载它并计算其中的值。这取决于您将拥有多少,因为数据存储区对模型大小有限制,如果将它存储在单个列表中的单个模型中,它最终会过大。
所以也许每个标签有一个模型,所有单一类型?当你遇到5 /秒的问题时,上面会派上用场。
答案 1 :(得分:1)
重复的字符串属性是您的最佳选择。