1

現在保存されている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を使用した最初のプロジェクトです。前もって感謝します!

4

1 に答える 1

2

チャド、できない理由はありますか?

Member {
    public List<string> PlacesVisited {get;set;}
}

そして、彼が訪れた場所のIDを保持するだけですか?

于 2012-06-03T12:57:06.810 に答える