2016-12-20 24 views
0

おはよう、NoSQLデータ "1対多"関係のモデリング

私はバックエンドとしてMongoDBを使って小さなデータモデルを開発しようとしています。 NoSQLデータベースとデータモデルを使用して初めて開発しました。

大きなアイデアはこれです:実行できるサービスがたくさんあり、それぞれのサービスは別の場所で実行可能です。一例として、食べる場所(サービス)を示すウェブサイトを考えてみましょう。そこには複数の場所がありますので、多くの場所(場所)に1つのサービス(EAT)があります。

これをモデル化する方法はわかりません。

SERVICE { 
_id: ObjectId, 
Name: String, 
Code: String 
} // Data model for the Service Collection? 

PLACES { 
_id: ObjectId, 
NameOfPlace: String, 
Service1: String, 
Service2: String, 
... 
Servicen: String 
} /* This way, by using the flexibility of MongoDB, 
updating the document each time with some new (key, value). 
Doesnt seem elegant nor efficient.*/ 

PLACES { 
_id: ObjectId, 
NameOfPlace: String, 
Services: { 
      NameOfService1: refID SERVICE COLLECTION, 
      NameOfService2: refID SERVICE COLLECTION.. 
      } 
} // Maybe this way is better? No idea how to do those tho' 

私に説明できる優れたソリューションはありますか?みんな、ありがとう!

答えて

1

参照を使用してモデリングすることを検討する必要があります。基本的には、場所はあなたが実装の詳細については、以下のリンクの答えのための

MongoDB - Data Modeling introduction

MongoDB - Model One-to-many relationship with reference

+0

感謝を読むことができるSerivceのIDのコレクション

SERVICE { _id: ObjectId, Name: String, Code: String } PLACES { _id: ObjectId, NameOfPlace: String, Services: [Service1_id, Service2_id, ...] } 

を持っています。私はいくつかの頭痛の後で同じ解決策を思いついたが、私は正しい答えとしてこの1つを投票することが有用であると信じて、他の人が答えを見つけることを可能にした!再度、感謝します! – mnemosdev

0

理想的には、1つのコレクション内にネストされたサブドキュメントまたは場所の配列として格納する必要があります。従来のRDBMSリレーションシップではなく、ネストされたデータオブジェクト/アレイでこのような要件にNoSqlを使用する必要があります。