1

我正在开发具有相当复杂的数据模型的GAE应用程序。Google App引擎和数据库“Views”

基于我的理解,使用noSQL数据库(特别是GAE)处理复杂数据模型的一个好方法是使用数据的非规范化“视图”。如果浏览器客户端想要更新某些数据,服务器会对某些核心数据执行写操作,并返回“200 OK”,以便客户端可以继续,然后使用任务队列更新写入数据可能已受到影响的任何“视图” 。

然后,无论客户想要查询某些通常需要SQL连接的对象,它都可以查询“视图”,它需要的所有数据都在同一“行”(或实体,在应用引擎的情况下)。

我遇到的问题是,所有这些创建和更新视图似乎都是图书馆应该做的事情,而不是我应该手动做的事情。是否有一种工具可以与GAE一起使用,您可以在其中指定数据的某些视图,然后期望它们将被正确创建和处理?我相信CouchDB可以做到这一点...

回答

2

视图通常是一个RDBMS功能比nonrel一个。但是,您所描述的内容听起来像物化视图,虽然它们是有效的解决方案,但它们并不常见,因此没有任何适用于App Engine的库(我知道)会这样做这个。

更常见的是简单地存储非规范化的数据,以便于高效读取,并在写入时直接更新数据。

+0

嘿,尼克,感谢您的回复。当一些数据更新被复制(非规范化)在很多其他对象中时,在实例中执行的正常事情是什么?例如,如果员工的名字改变了,并且他的姓名被复制到他多年来一直使用的1000多个约会中? – 2011-01-31 04:32:48