2011-12-30 5 views
11

私はPHP/mySQL/CodeIgniterをかなり使用して、SQL文を記述してデータを処理/操作しています。私は基本的なことをすべてやっていると感じています。私はMongoDB、スキーマレスデータベースについて良いことを聞いてきました。MongoDB/NoSQLデータベースの紹介が必要です

MySQLでは、スキーマはモデルの構造を理解するのに役立ちます。通常、私は、ID、タイトル、説明、日付のような基本的なものを持つクラス図を描きます。

MongoDBは非常にシンプルなように見えますが、どこから始めるのが難しいですか。私が聞く/読んだことから、スキーマはありません。どのようなタイプが返されるのかはどのように分かりますか?

モデルを作成するにはどうすればいいですか?異なる「テーブル」間にリレーションを追加するにはどうすればよいですか?

リレーションを追加してデータをマップする標準的な方法は何ですか?私はそれを試してみましたが、私がしていたことが正しい方法であるかどうかは分かりませんでした。

私はマニュアルなどを読んでみましたが、mSQLからMongoDBへの移行を助ける良い記事が見つかりませんでした。

私はのmySQLMongoDBのとモデルの比較を見ることができましたとにかくありますか? CRUDのような単純なもの。

どのようにすれば始めることができますか?

+1

が、唯一のあなたがリクエスト間のものを保管場所として使用しているデータベースを考えてみてください。あなたのデータベースはあなたのアプリケーション*ではなく、あなたのアプリケーション(コード)はあなたのアプリケーションです。データベースは* persistence *のためだけに存在します。これは、モデルがデータベースを表す場所ではなく、クラス/オブジェクトがモデルを表す、適切で完全なOOPアプローチに適しています。 – deceze

+0

@deceze基本的には、データベースではなく、アプリケーションに応じてモデルを設計します。 – tpae

+1

正しい状態を具現化するクラス/オブジェクトを使用してビジネスロジックを直接実装し、この状態がビジネスロジック( 'private'プロパティ、setterなど)。データベースは、スクリプトが終了した後にその状態を保持するためのものです。 – deceze

答えて

5

hereを起動できます。

モデルを作成するにはどうすればいいですか?異なる「テーブル」間にリレーションを追加するにはどうすればよいですか?

Answer:

非リレーショナルアプローチは>多くのマシンに水平スケーリングデータベースソリューションへの最適パスです。 (私たちはBSONにシリアライズ)JSON文書で

Answer:

のMongoDBのデータを格納します。 JSONは、ネイティブプログラミング言語の型にシームレスにマップするリッチなデータモデルを提供し、スキーマレスなので、RDBMSなどの強制スキーマを使用するシステムよりもデータモデルをより簡単に進化させます。

のみ部分的な答えもチェックWhat is NoSQL, how does it work, and what benefits does it provide?I need an advice about NoSQL/MongoDb and data/models structureConverting simple MySQL database to a NoSQL solution