我想知道是否有人可以就构建数据模型以完成下面描述的简单系统的有效方法提供一些概念性建议。对以非关系方式思考有点陌生,并想尝试避免任何明显的陷阱。我的理解是,一个基本原则是“存储很便宜,不用担心数据重复”,就像在规范化的 RDBMS 中一样。
我想建模的是:
可以给定 0-n 个标签的博客文章。许多博客文章可以共享相同的标签。检索数据时希望允许检索与标签匹配的所有文章。在许多方面与stackoverflow 采用的方法非常相似。
我的正常心态是在标签和博客文章之间建立多对多的关系。然而,我认为在 GAE 的背景下这会很昂贵,尽管我已经看到了它正在完成的例子。
也许使用包含每个标签作为文章实体的一部分的 ListProperty,以及在添加和删除标签时跟踪标签的第二个数据模型?这种方式不需要任何关系,并且 ListProperty 仍然允许查询任何列表元素匹配将返回结果。
关于在 GAE 上解决此问题的最有效方法有什么建议吗?