如何设计mongodb集合

如何设计mongodb集合,mongodb,collections,Mongodb,Collections,我的收藏方案是: 用户A可以阻止其他用户,其他用户可以阻止用户A,即多对多关系。 但是我的问题是如何设计用户类 只需将所有被阻止的用户放在某种列表中,或者将一个块类嵌入到用户类中 一种可能的解决办法: public class User { String id; String username; String password; String email; List<User> blockedUserEmails; //getter and setters } 公共类用户

我的收藏方案是: 用户A可以阻止其他用户,其他用户可以阻止用户A,即多对多关系。 但是我的问题是如何设计用户类

只需将所有被阻止的用户放在某种列表中,或者将一个块类嵌入到用户类中

一种可能的解决办法:

public class User
{

 String id;
  String username;
String password;
String email;
List<User> blockedUserEmails;
//getter and setters
}
公共类用户
{
字符串id;
字符串用户名;
字符串密码;
字符串电子邮件;
列出被阻止的电子邮件;
//二传手
}

公共类用户
{
字符串id;
字符串用户名;
字符串密码;
字符串电子邮件;
//二传手
列表BlockedUserEmailsList;
}

公共类用户
{
字符串id;
字符串用户名;
字符串密码;
字符串电子邮件;
@嵌入
列表blockedUserId;
//二传手
}
哪一个课程最适合这个项目

谢谢你的帮助

更新

用户A不喜欢用户B、C等将在同一组中,并且可以阻止他们加入该组。
也许用户B都不希望用户a是同一个组,所以他们可以互相阻止。当我显示可能的用户和组的列表时,它们彼此不可见,例如用户A不能选择用户B或用户B

用户应该有一个被阻止用户的ID列表,这样你就可以用最少的信息来识别被阻止的用户,而不必担心冗余信息不一致

嵌入整个用户将导致递归爆炸,因为嵌入的阻塞用户也可以有嵌入用户,等等

public class User {
  String id;
  String username;
  String password;
  String email;
  List<String> blockedUserIds;
  //getter and setters
}
公共类用户{
字符串id;
字符串用户名;
字符串密码;
字符串电子邮件;
列出blockedUserID;
//二传手
}

“最佳”标准是什么?我只需要一些解决方案,最多能与500名用户一起工作。(使用SpringMVC)“工作良好”的标准是什么?请告诉我们对您来说什么是好的或坏的解决方案。您需要使用阻止的用户列表做什么?您是否只需要用户阻止的人的电子邮件地址列表?请检查更新。我不明白你所说的标准是什么意思。你能给我解释一下吗?谢谢你的回答。
  public class User
  {

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

@Embedded
List<Blockee> blockedUserId;

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