将存储与业务逻辑分离的技术(RDBMS和NoSQL)

时间:2017-02-03 21:33:05

标签: php database pdo doctrine-orm orm

目前是否有任何技术可以将存储与业务逻辑分开并且允许我轻松切换到MongoDB的MySQL? (我假设我自己迁移数据,或者在切换后从空数据库开始)。

我希望更改与更改配置,驱动程序和数据库连接数据一样简单。

我理解PHP可以使用Doctrine,在不同的RDBMS之间切换,但我有兴趣从任何RDBMS切换到NoSQL系统。

我现在专注于PHP - 但如果您知道其他编程语言的任何解决方案 - 我将很乐意了解它们。

我假设不是一个复杂的数据库,没有交易,没有复杂的关系。

更多背景/细节

我正在编写一个简单的爬虫程序,它将访问网站,并读取一些数据并将其保存到数据库中。它非常简单,我可能只使用pdo_mysql for PHP。我正在考虑一个额外的层来覆盖这种情况,以防我有一天想从MySQL切换到MongoDB - 我问这是否可能。

更新

我认为Laravel及其Eloquent支持开箱即用的MySQL,并且有一个额外的插件:https://github.com/jenssegers/laravel-mongodb支持MongoDB - 我将从程序员的角度检查这是否真的透明。除非有人有经验并且马上就知道了吗?

1 个答案:

答案 0 :(得分:0)

这里的典型方法是DAO或Repository设计模式。在此模式中,您提供了一个库,该库负责持久性并返回业务对象。这些对象没有持久性逻辑,并在存储库中存储或从存储库中检索。

这就是说,这只适用于业务对象。当您想要重做报告等时会出现问题....这里RDBMS和NoSQL解决方案之间的差异会让您感到困难。

为了确保我不知道用例是什么,"您想对数据做什么"在选择这些之间是一个巨大的问题。