Скажем, у меня есть группа:
class Group {
int Id
}
И член:
class Member {
int Id
List<int> GroupIds
}
Любой 1) У члена может быть это свойство GroupIds, и запрос может выглядеть так
var groupMembers = session.Query<Member>().Where(m => m.GroupIds.Contains(groupId)
Или 2) Я могу определить GroupMember
class GroupMember {
int GroupId
int MemberId
//Extra information
}
var groupMembers = session.Query<GroupMember>().Where(m => m.GroupId == groupId)
У меня около 10 000 000 участников и 1000 групп, в каждой группе может быть около 100 000 членов, и каждый участник может входить в 10 групп.
С точки зрения дизайна первый вариант более желателен, но насколько эффективна индексация коллекции по сравнению с обычным индексом свойства?
Изменится ли это, если член может быть частью 100 или 1000 группвместо этого?