2011-01-12 6 views
2

RDMS(MySQL)をグラフまたはドキュメントデータベースに切り替えるときに、アプリケーションコードの変更が多く必要な場合や、コードを完全に書き直す必要がある場合は、私はMySQLを使用していますが、特定のモジュールのNoSQL実装に約5-6ヶ月間で切り替える予定ですので、開発チームにアドバイスをして、開発のベストプラクティスを教えて、後でスイッチが発生してもコードを変更しないようにします。現在のプラットフォームは、PHPのcodeignitorとMySQL.Websiteは、ユーザーのコンテンツサイトです。後でMysqlからnosqlに移行します。コード要件?

メール、プロフィールの詳細、およびアクティビティストリームを保存するために、グラフDBをフレンドコンポーネントとドキュメントDBに使用することを計画します。現在、私たちは2ヶ月以上MYSQLのスキーマを作成することに費やしています。これは、数ヶ月でスイッチが行われることを考えると無駄に思えるので、できるだけ多くのコード変更を避けたいと思います。

私はこれらのモジュールのコードからすべてのSQLクエリを削除する必要がありますか?

+0

ORMを使用しましたか?もしそうなら、あなたは大丈夫でしょうか?それ以外の場合は、モデルに関連するすべてのものを書き直す必要があります。 –

+0

いいえ、ORMはありません。関数/クラスのようなアプリケーションロジックでさえ? – BrianJ

+0

データに直接触れるものは、ほとんど書き直す必要があります。私が提案しているのは、関数のクエリ($ query){return mysql_query($ query);} 'という単純なものであっても、mysqlのロジックを抽象化し、mysql_query()の代わりにqueryスクリプトを作成してから、基本的なDB機能のすべてを実行してください。こうすることで、後で元に戻ることができます。これらの関数のプラグを抜いて、同じ名前の新しい関数セットをプラグインします。この関数セットは、どのソースからでもデータを取り出し、MySQLと同じ形式で結果を返します。 – Phoenix

答えて

0

OQGraphは、MySQL用のプラグマブルグラフエンジンです。あなたにいくつかの仕事を救うことができました。

+0

興味深いように見えますが、大規模にスケールすると研究する必要があります。 – BrianJ

+0

MariaDB 5.2にバンドルされていますので、テスト用にダウンロードできます。私はいくつかの本当にエキサイティングなプレゼンテーションでそれについてのMySQL大学のセッションを見てきました。確かに良く見えます。 – Mchl

0

コードにデータアクセスモジュールを作成します。変更はそのモジュールにローカライズされます。データアクセスモジュールのみを再コンパイルします。

もちろん、あなたのコードが別々のdllにコンパイルされていなければ、ほとんどのプロジェクトを再構築して再コンパイルする必要があります。

これはインターフェイスの変更であり、単なる実装の変更ではないことを認識する必要があります。インターフェイスの変更からあなたを守ることができる世界で魔法のベストプラクティスはありません。あなたができることは、コードの変更と再コンパイルをローカライズするためにDLLを分離するようにコンパイルされた適切に構造化されたコードベースに依存することです。

+0

PHPはコンパイルされた言語ではありません(実行可能ファイルにコンパイルされていますが、一般的にそうではありませんが、アプリケーションを適切に構造化することは常に良い考えです); – Mchl

+0

私は紛失しています。これは英語でどういう意味ですか? :) – BrianJ

関連する問題