2012-05-18 16 views
5

Yii Frameworkでネイティブ言語、タグなどのデータを扱うシステムを構築しようとしています。Yii mongo DBとMySQLを同時に使用する

MongoDBはデータを格納するために既に選択しています。私はそれがうまくいくと思っており、コストを抑えてパフォーマンスを向上させることができます(データベースには大量のデータがあります)。

私の質問は、ユーザー認証、支払いなどについてです。これは、データがリレーショナルであると思う情報や領域です。

So: 1. 2つの異なるデータベースシステムを使用しますか?私はそれらを必要とするか、私はこれを複雑にしていますか? 2. 2つのdbアプローチをお勧めする場合は、Yiiでどのように達成するのですか?

ありがとうございました!

PS:この質問は、関係者と非関係者の間でもう1つの無限の議論であるとは考えていません。私のデータはモンゴーだと言っていましたが、それについては何か言いたいことがあれば)

答えて

8

OpenSkyのインフラストラクチャではthis presentationに興味があります.MongoDBはMySQLと共に使用されます。 Mongoは、主に柔軟なスキーマが有用なCMSタイプのデータに利用され、トランザクション(顧客注文、支払いなど)にMySQLを利用していました。 Doctrineライブラリを使用すると、ORM(SQLデータベースの場合)とMongoDB ODMが同様のAPIを共有しているため、簡単に実験を行うことができます。

MongoDBを使用してユーザーデータを保存することは恥ずかしいことではありませんが、それはしばしば埋め込まれたドキュメントストレージの恩恵を受けるレコードです(たとえば、単一のユーザードキュメント内に複数の請求先住所を格納するなど)。何かがあれば、Mongoは、進化する製品要件のためにスキーマの変更を心配することなく、アプリケーションを開発できるように十分柔軟でなければなりません。これらの要件がより明確になるにつれて、アプリケーションのパフォーマンスニーズと必要とするデータベースクエリのタイプに基づいて意思決定を行うことができます。

+0

素晴らしい答えです。ありがとう! – jribeiro

0

複数のデータベースを使用しても問題ありません。本当に必要な場合は、多数のデータベースが複数のデータベースを使用しています。頭を下げてプロジェクトを始める。

+0

NoSQLとリレーショナルdbsを混ぜることは決して良いことではありません。本当の必要がない限り。あなたは通常、NoSQLを使い果たすか、そうではありません。私の会社では大規模なウェブサイトを持っていますが、データにMySQLを使用していますが、mongodb GridFSを使ってファイルを格納しています。 MongoDB GridFsがこれに最適ですので、ファイルを保存するだけです。 – Flukey