【发布时间】:2011-06-08 03:29:11
【问题描述】:
在 RDMS (MySQL) 到图形或文档数据库之间切换时,是否需要大量更改应用程序代码或完全重写代码?我正在使用 MySQL,但计划在大约 5-6 个月内切换到某些模块的 NoSQL 实现,因此我想向我的开发团队提供有关开发最佳实践的建议,以最大限度地减少稍后发生切换时的时间并最大限度地减少代码更改。当前平台是带有 MySQL 的 PHP codeignitor。Website 是一个用户内容站点。
计划将图形数据库用于朋友组件,将文档数据库用于存储邮件、个人资料详细信息和活动流。目前我们已经花了 2 个多月的时间在 MYSQL 中创建模式,这似乎是一种浪费,因为切换将在几个月内发生,因此我希望以后尽可能避免代码更改。
我可能需要从这些模块的代码中删除所有 SQL 查询?
【问题讨论】:
-
你使用过 ORM 吗?如果是这样,您可能会没事。否则,您将不得不重写与模型有关的大部分内容。
-
不,没有 ORM。甚至像函数/类这样的应用程序逻辑?
-
几乎所有直接接触数据的东西都必须重写。我的建议是从 mysql 中抽象一点逻辑,即使它像
function query($query){return mysql_query($query);}这样简单,然后在脚本中使用 query() 而不是 mysql_query(),然后对几乎所有基本的 DB 函数执行此操作.这样,您可以稍后再回来,基本上拔下这些函数并插入一个具有相同名称的新函数集,该函数集从任何来源提取数据并以与 MySQL 相同的格式返回结果。 -
使用动态查询是否会影响性能?我会这么认为,因为它必须首先查找 $query1 是什么,然后查找数据库中的值,然后将输出显示给用户?