私は映画のためのデータベースを作っています。私はもともと映画の中にこのような俳優を埋め込むつもりだった。2つのコレクションをリンクする方法に関するMongodbの設計アドバイス
{
title : 'movie',
actors : [
{
name: 'actor',
DOB : '1/1/1',
},
{
name: 'actor2',
DOB : '1/1/1',
}
],
}
私はすぐにこれが悪い決断だと判断しました。ですから、私の次のアイデアは、別々のアクターのコレクションを作成し、このような映画のドキュメンタにアクターIDを埋め込むことでした。
{
title : 'movie',
actors : [
'actorid1',
'actorid2',
],
}
この実装は悪いですか?私は俳優がいたすべての映画を追跡したいと思ったら、俳優のドキュメンテーションの映画のリストを作る必要があるように思えます。2つを関連付けるためのリンクテーブルを作成する方が良いでしょうか? NoSQLデータベースの関連するSQL構造を避けるべきかどうかはわかりませんでした。モンゴブではテーブルをめちゃくちゃにするのか?
最初に最も頻繁にアクセスする必要があるデータは、i。 e。あなたのデータに対して最も頻繁に要求が行われます。それに応じて、別々のコレクションを必要とするのか、何に組み込むのかを決定します。 –
私は、映画や俳優に平等にアクセスし、互いにどのように関係しているかを計画しています。たとえば、私は "腐ったトマトからトップ10の評価を受けた映画のすべての俳優を取得する"またはその逆を行うことができるようにしたいと考えています。 これは、デザインと私は、アクターと映画をリンクするコレクションを作成するのが最善の方法だと思います。私の質問です:これはNoSQLのDBのに眉をひそめですか? – user3736114
はい、そうです。少なくともMongoDBでは。リンクコレクションでは、_JOIN_が存在しないため、関連するエンティティIDを含む配列を持つドキュメントではなく、クエリDBをさらに必要とします。 –