6 oracle mobile synchronization couchdb
我需要将我的Relational数据库(Oracle或Mysql)与CouchDb同步.有谁知道它是如何可能的.如果可能的话我们可以通知CouchDb关于关系数据库发生的任何变化.
提前致谢.
首先,您需要改变您对数据库建模的看法.与CouchDB同步不只是创建所有表的文档,而是将它们推送到Couch.
我正在将CouchDB用于生产中的网站,我将描述我的所作所为,也许它会对您有所帮助:
从一开始,我们一直使用MySQL作为主数据库.我绘制了实体,包括他们的关系.为了加速前端,我决定使用CouchDB作为内容存储库.好处是拥有完整准备好的文档,其中包含所有关系数据,因此可以用更少的开销获取数据.因为文档可以包含相关实体 - 比如包含所有答案的问题文档 - 我首先确定了我想要推送给Couch的顶级实体.在我的例子中,只有将问题推到沙发,并且这些文件将包含答案,可能的一些元数据,如标签,用户信息等.当要求对前端的一个问题,我只需要获取一个文件获得我需要的所有信息.
现在提出第二个问题:如何通知CouchDB更改.在我们的例子中,我们数据的所有更改都是使用CMS完成的.我的代码中有一个点,所有编辑动作调用.这就是我挂钩一个函数的地方,该函数将对象保存到CouchDB中.该函数确定此对象是否需要持久化(即:它是否为顶级实体),然后创建此对象的文档(考虑某种toArray函数),并递归地获取其所有关系.然后将完整的文档推送到CouchDB.
现在,在您的情况下,这里的变量可能完全不同,但基本思路是相同的:找出您想要保存的文档,以及它们的外观.然后编写一个组成这些文档的函数,并确保在对关系数据库进行更改时调用它.
CouchDB非常简单.可能最简单的方法是直接更新现有文档.我想到了实现这一目标的两种方法:
views值增加"),那么编写_update函数似乎是谨慎的.更新功能非常简单:它们接收HTTP查询和文档; 他们修改文件; 然后CouchDB存储新版本.您在Javascript中编写更新函数,它们在服务器上运行.这是将常见操作"压缩"为更简单(和更少)的HTTP查询的好方法.