我想知道是否有人可以提供一些有关构建数据模型以实现下述简单系统的有效方法的概念建议.对于以非关系方式思考并且想要尝试避免任何明显的陷阱,我有点新鲜.我的理解是,基本原则是"存储便宜,不要担心数据重复",就像在规范化的RDBMS中一样.
我想建模的是:
一篇可以给出0-n标签的博客文章.许多博客文章可以共享相同的标签.检索数据时,希望允许检索与标记匹配的所有文章.在许多方面与stackoverflow中采用的方法非常相似.
我的正常心态是在标签和博客文章之间建立多对多的关系.然而,我在GAE的背景下考虑这将是昂贵的,虽然我已经看到它的例子.
也许使用包含每个标记的ListProperty作为文章实体的一部分,以及第二个数据模型来跟踪标记在添加和删除时的情况?这种方式不需要任何关系,ListProperty仍然允许任何匹配的列表元素将返回结果的查询.
有关GAE最有效方法的任何建议吗?
感谢你们两位的建议.我已经实现了(第一次迭代)如下.不确定这是否是最佳方法,但它正在发挥作用.
A类=文章.有一个StringListProperty,可以在它的列表元素上查询
B类=标签.每个标签一个实体,还保持使用每个标签的文章总数的运行计数.
对A的数据修改伴随着对B的维护工作.在重读环境中考虑预先计算的数量是一种很好的方法.