現在保存されているMemberオブジェクトがあります。私のサービスでは、Foursquareのvenues APIを使用して、メンバーの近くの場所を表示しています。彼らが訪れた場所の追跡を開始したいと思います。
次のようなプロパティをメンバーに追加できます。
Member {
public List<Place> PlacesVisited {get;set;}
}
しかし、それは本質的に、RavenDBにすでに保存されているPlaceオブジェクトを複製することになるでしょう。さらに、メンバーはサイト全体で使用されますが、訪問した場所は1ページに表示するだけで済みます。訪問した場所が2、3しかない場合は大したことではありませんが、数百以上の場所にアクセスし始めると、(不要な場合に)非効率的にデータを取得することになります。
訪れた場所を別の物に入れることができました。おそらく次のようなものです:
VisitedPlace {
public Member Member {get;set;}
public Place Place {get;set;}
public DateTime WhenVisited {get;set;}
...
}
それは私がデータを複製することを妨げるものではありませんが、それは私が必要のないときにメンバーが訪れたすべての場所を引っ張っていないことを意味します。
また、将来的には、訪れた場所だけでなく、それ以上のことを追跡する可能性があります...より良い方法/パターンはありますか?私はNoSQLにかなり慣れていません。これは、RavenDBを使用した最初のプロジェクトです。前もって感謝します!