我为我当前的应用程序实现了一个评论部分。评论部分可以被认为是给定页面上的一系列用户帖子。我想知道哪种设计在非关系数据库(Google App Engine)中最有效。
设计 1: 按 groupId 对评论进行分组并过滤这些结果
Comment Entity >> [id, groupId, otherData...]
与页面相关的所有评论的查询如下所示:
Select from Comments filter by groupId
设计 2: 为组内的所有评论存储一个键,如果条目数超过 5000 个条目,则使用自扩展列表。
Comment Entity >> [id, SELid]
查询将简单地执行 id/key 查找。
我知道索引可能很昂贵,但第一个设计提案只会索引 groupId 字段,并且只需要一次写入即可发表评论(如果包含索引,则写入更多)。
第二种设计将避免昂贵的索引,但每个发布的评论都需要读取和写入操作。此外,我担心争用问题。这些评论不应该经历极高的吞吐量,但第二种设计似乎会造成瓶颈。
由于我是非关系数据库的新手,因此我将不胜感激有关这些提议的设计及其相关权衡的任何意见。