2017-12-16 10 views
5

私はmongooseに移動したいが、私はどのように私のmysqlテーブルがSQLベースのデータベースにマップされるのか理解する必要がある。非リレーショナルデータベースでは冗長データはどのように回避されますか?

特に、データの複製を避けるために結合を使用します。つまり、1つのテーブル(A)に関連する2つのテーブル(B & C)があるかどうかです。必要なときにテーブルAをBに結合するか、必要なときにテーブルAをCに結合することができます。

これはどのようにmongoose/mongodbすなわちnoSQLで動作しますか?

答えて

2

あなたの説明は正規化されたデータです。データベースの正規化は、リレーショナルデータベースの特徴です。 MongoDBのような文書指向のno-sqlデータベースは、doucmnetパラダイムを中心にdtaaを構造化する異なるパラダイムを使用します。この世界では、データはドキュメント(JSON構造)に整理されます。他の構造を指すこともできますが、常にトレードオフがあります。冗長性のあるデータのレベルは決める必要がありますが、それは実際には二次的な問題です。 MongoDBのような世界での最優先事項は、文脈の中で最も意味を成すものを理解することです。たとえば、広告申込情報が埋め込まれたインボイスを表すドキュメントだけでなく、別のカスタマーオブジェクトへのポインターを表示することもできます。しかし、同じデータベース内に、顧客の周りに設計された文書、請求書見出しがネストされている文書、または請求書の行がネストされている文書、または商品カタログ情報の有無にかかわらず、 。

ジョインは一般的にMongoDBの世界では高価ですが、さまざまな目的で複数の方法で格納された豊富なデータは、適切なコンテキストで使用する価値のある機能です。

MongoDBは、リレーショナルDBMSの代わりに使用するのではなく、多言語多言語(多言語)永続性設計の一部として参照するべきです。 RedisとNeo4Jのような他のデータツールを、その世界の一部としてさまざまなことをするために使うこともできます。

コースの馬; MongoDBはすべてではありません。

関連する問題