这是一个菜鸟问题,但我无法找到解决方案 我有两个实体,用户和团队。用户可以创建团队并邀请其他用户。用户只能属于一个团队,但团队有多个用户。 用户和团队之间最正确的关系是什么?我还需要团队和其他属性中的DateJoin。我应该创建第三个表(TeamMembers)吗? 这是我试过的代码:
public class TeamMember
{
public int Id { get; set; }
[ForeignKey("Team")]
public int TeamId { get; set; }
public Team Team { get; set; }
[ForeignKey("User")]
public string UserId { get; set; }
public User User { get; set; }
public DateTime DateJoin { get; set; }
public RoleEnum MemberRole { get; set; }
}
public enum RoleEnum
{
Capitan = 1,
Main,
Sub
}
团队有成员名单:
public class Team
{
public int Id { get; set; }
public string Name { get; set; }
public int Score { get; set; }
public ICollection <TeamMember> Members { get; set; }
}
但是第三张表意味着多对多关系...
答案 0 :(得分:1)
如果用户只能属于一个团队,那么这是正确的格式。
但是,如果您认为将来可能会更改此政策,那么我建议您使用多对多关系。这样您还可以通过简单地使用&#34; DateLeave&#34;来跟踪您的用户所属的先前团队。以物业为例。