2017-05-18 8 views
0

私はユーザーデータベースと、ユーザーが登録できるWebフロントエンドを持っています。私はmysqlデータベースをmongodbに変換したい。 mysqlでは、私はユーザテーブルと、職場タイプ、住所タイプなどの同じルックアップテーブルを持っています。 入れ子になったドキュメントをどこでも使えます(すべてのユーザには埋め込み型のaddress_typeテーブルが必要です)。モンゴブ1〜2集?

ウェブサイトで利用可能なすべての種類をリストアップする必要がある場合はどうすればよいですか?コレクションで使用できるすべてのタイプ(たとえば、タイプ3の100人のユーザー、タイプAの90のタイプ10、タイプBの10のタイプなど)は確かではありませんが、3つのタイプすべてをウェブサイトに戻さなければなりません。

この場合、すべてのmysqlテーブルに対して個別のコレクションを作成する必要がありますか? mongoのベストプラクティスは何ですか?

答えて

1

MongoDBでのデータモデリングは、RDBMSと大きく異なります。 mongodbでは、データアクセスパターンを分析し、アプリケーションで常にどのデータにアクセスするかを分析する必要があります。 RDBMSでは、データを3番目の正規化された形式にすることがベストプラクティスですが、mongodbでは、コレクション結合が推奨されないため、データを埋め込む必要があります。詳細:MongoDB documentation

上記のすべてのユーザー関連情報を常に一緒に表示する場合は、すべての情報を1つのドキュメントに埋め込む必要があります。プログラミングによるドキュメントの結合は、非常にコストのかかる操作になるためです。

+0

ありがとうございました。上記の例で情報を埋め込むと、どのようにすべてのタイプをドロップダウンアイテムにフィードできますか?私はタイプテーブル/コレクションがありません。 – vencel

+0

構造が整っていれば、お手伝いができます。今、その質問は広すぎて答えられません。また、mysqlをmongodbに変換する前に、mongodbが実際にアプリケーションに適しているかどうかを評価する必要がありますか?最初にnosql vs sql、次にnosql CAP theoryについて読んでみることをお勧めします。 mongodbが適切な選択であると判明した場合、アプリケーションのパフォーマンスにとって非常に重要な要素であるため、mongodbでデータモデリングを理解するのに時間を費やします。 – adi

関連する問題