2015-02-04 4 views
1

Сценарий для моей коллекции: Пользователь A может блокировать других пользователей и других пользователей, которые могут блокировать пользователя A, т. Е. Многие из многих отношений. Но мой вопрос в том, как создать класс пользователя.Как создать коллекцию mongodb

Просто поместите всех заблокированных пользователей в какой-то список или вставьте класс Block в класс User.

Возможное решение:

public class User 
{ 

String id; 
    String username; 
String password; 
String email; 
List<User> blockedUserEmails; 
//getter and setters 
} 

Или

public class User 
{ 

String id; 
String username; 
String password; 
String email; 
//getter and setters 

List<String> blockedUserEmailsInAList; 
} 

Или

public class User 
    { 

String id; 
String username; 
String password; 
String email; 

@Embedded 
List<Blockee> blockedUserId; 

//getter and setters 
} 

Какой один из классов лучше для предлагаешь?

Благодарен за любую помощь.

Обновление

Пользователь А не нравится, что пользователь В, С и так далее будет находиться в одной и той же группы и может блокировать их из группы. И, возможно, пользователь B не хочет, чтобы Пользователь a был одной и той же группой, чтобы они могли блокировать друг друга. Когда я показываю список возможных Пользователей и групп, поэтому они невидимы друг перед другом, и, например, Пользователь A не может выбрать пользователя B или наоборот.

+0

«Лучший» по какому стандарту? –

+0

Мне просто нужно некоторое решение, которое хорошо работает с, как минимум, 500 пользователями. (с использованием Spring MVC) – user1067665

+0

«хорошо работает» по какому стандарту? Скажите, пожалуйста, что будет хорошим или плохим решением для вас *. –

ответ

1

Пользователь должен иметь список идентификаторов пользователя, который он заблокировал, чтобы вы могли идентифицировать заблокированных пользователей с минимальной предоставленной информацией, и вам не нужно беспокоиться о том, что избыточная информация становится несогласованной.

Внедрение всего пользователя приведет к рекурсивному взрыву, поскольку встроенный заблокированный пользователь также может иметь встроенных пользователей и т. Д.

public class User { 
    String id; 
    String username; 
    String password; 
    String email; 
    List<String> blockedUserIds; 
    //getter and setters 
} 
+0

Спасибо за ответ. – user1067665

Смежные вопросы