我有充分的理由将MongoDB用于我的应用程序的一部分.但人们通常将其描述为不适合"交易"应用程序,例如交易必须精确/一致的银行等.
在Rails中拆分模型并使其中一些使用MySql和其他mongo是否有意义?或者这通常会导致更多的问题而不是它的价值吗?
我不是在构建一个银行应用程序或任何东西,但我认为在我的用户的表或事务表(记录收入)可能有意义在MySql中执行该部分.
这就是我们用CouchDB和PostgreSQL做的事情.
我们所有的用户和组的东西都在postgresql数据库中.
其他任何东西(在我们的例子中,一些带有统计数据的记录)都在couchdb数据库中.
在我们的例子中,它允许我们每个客户端有一个couchdb数据库(应用程序将自己连接到一个或另一个,具体取决于用户的主机).
并且只有一个postgresql数据库中包含所有用户.
所以是的,我认为在同一个应用程序中拥有一个SQL和一个NOSQL数据库是个好主意.
没有理由不能在MongoDB中保留用户表.您是否决定在MongoDB中保留事务表是另一个问题.如果需要多对象事务,则必须使用支持事务的关系数据库.如果您不需要这种交易方式,那么使用MongoDB仍然是一个好主意.
请记住,如果您使用MongoDB,我们建议您使用复制进行故障转移.
要记住总体的事情是,如果你使用,因为一致性保证的关系数据库中,你还需要确保您的硬件配置为利用这些功能.请参阅此处的注意事项:
http://dev.mysql.com/doc/refman/4.1/en/innodb-configuration.html
如果您没有采取这些预防措施,那么MongoDB的持久性与关系数据库的持久性之间没有太大差异.