オブジェクトが複数の場所で使用されている場合の処理方法を考えています。次のコードが与えられた場合 (単なるサンプル コード):-
public class Group
{
public ObjectId Id { get; set; }
public string Name { get; set; }
public List<Person> People { get; set; }
public List<Meeting> Meetings { get; set; }
}
public class Meeting
{
public string Subject { get; set; }
public List<Person> Attendees { get; set; }
}
public class Person
{
public string Name { get; set; }
}
グループを mongodb ドキュメントとして保存すると、すべてのユーザーと会議がシリアル化されます。ただし、同じ Person オブジェクトは、People List で、および会議の出席者として参照できます。ただし、シリアル化されると、それらは個別のオブジェクトになります。同じ "Person" オブジェクトが People リストと Meetings リストの両方にあるようにするにはどうすればよいですか?
または、これをモデル化するためのより良い方法はありますか? できることの1つは、「人」を別のドキュメントに入れて埋め込み/参照することですか? これにより、ますます個別のコレクションが作成され始めます。理想的には、単一のドキュメント内で参照を維持したいと考えています。
または、ドキュメント内で各人にIDを付け、1つのマスターリストを作成し、IDのリストのみを「会議」に保存し、何らかのヘルパーメソッドを使用してマスターリストからIDを解決する必要がありますか? できますが、少し醜いです。