【问题标题】:Lithium Connections (MongoDb, CouchDb, and Mysql) in one Application一个应用程序中的锂连接(MongoDb、CouchDb 和 Mysql)
【发布时间】:2011-09-07 03:24:51
【问题描述】:

我正在开发电子商务应用程序。是否有可能编写一个在不同连接上工作的锂应用程序,基本上是 MongoDb 或 CouchDb 和 MySQL?我们如何才能做到这一点,您有什么实现它的秘诀?

【问题讨论】:

    标签: mongodb couchdb php-5.3 lithium


    【解决方案1】:

    我不确定我是否理解正确。

    如果您只想同时使用更多连接到不同的数据库,这很容易实现。您可以一次定义更多连接(查看默认的 connections.php 引导文件以及锂\核心\环境类的文档)。

    如果您想在上述所有数据库上运行整个应用程序,请继续阅读...

    一般来说,回答这个问题并不容易,但这里有一些想法:

    您可能知道,Lithium 为您提供了一个数据库抽象层,它公开了 CRUD 过程的通用方法。这在开发过程中很好(您不必为每个数据库学习新接口),您很快就会遇到需要数据库特定功能的地步。

    这可能会引起关系数据库之间的兼容性问题,但几乎不可能混合关系数据库和非关系数据库。当然你可以并排使用它们,但是提供抽象真的很难。例如,您将如何在 MySQL 中查询嵌套文档(就像您在 MongoDB 中所做的那样)?您可以编写一个包装器来尝试模拟这一点,但您不应该尝试。

    也就是说,如果你真的必须这样做,你可以通过编写包装器代码来实现它,并省略非常具体的数据库相关功能。

    【讨论】:

    • 谢谢。你知道我真的很喜欢 noSql 和 mysql 的两个特性,但你说得对,到目前为止,混合关系数据库和非关系数据库有点困难。
    • 我强烈反对不这样做,即使经过仔细考虑也是可能的。但是将两者结合使用就可以了——出于遗留原因,我们同时使用 mongodb 和一些 mysql。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 2017-08-04
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多