【发布时间】:2014-05-15 18:42:35
【问题描述】:
我正在尝试在 App Engine 中为我的博客建模一个基本的线性评论系统(您可以在 http://codeinsider.us 看到它)。我的主要对象类别是:
用户, 文章, 评论
一个用户将拥有许多 cmets,并且应该能够一目了然地查看他们的 cmets。
一篇文章会有很多cmets,应该一目了然。
一条评论将与一位用户和一篇文章相关联。
我知道如何在标准的关系数据库中构建它 - 例如,我可能有用于 cmets、用户和文章的单独表,使用外键将它们绑定在一起,文章和用户的唯一性约束,而没有cmets 等。没什么特别的。
在 Python App Engine 中使用 NDB 进行建模的最佳方法是什么? ndb.KeyProperty 看起来很有趣,StructuredProperty 也是如此。我不认为我可以使用 StructuredProperty,因为评论可以“属于”用户和文章。但是对于 ndb.KeyProperty,keyProperty 似乎不做任何检查或验证逻辑,所以我必须自己实现。
我能做的另一件事就是认输,将巨大的 JSON blob 存储在代表 cmets 的键和种类的用户和文章中。这可能不是一个糟糕的解决方案。
有什么想法吗?
编辑: 这将是高读低写。我可能会在 cmets 上增加一些参与度(upvotes/downvotes),但即便如此,它也会非常重视阅读。
【问题讨论】:
标签: python google-app-engine nosql