我目前正在开发一个有 2 个表的应用程序。用户和团队。用户有 UserId 作为 PK 和 UserPassword。
Team 表有 TeamId 作为 PK 和 TeamName。
最初我只有一个表,其中有 UserId、UserPassword 和 TeamId,但有人向我指出当前的设计没有标准化。因此,我不得不将表分解为 User、Team 以及一个名为 User_Team 的 Join Table,其中包含 User 表中的 UserId 作为 PK 和 TeamId 作为 Team 表中的 PK。
约束 一个用户只能在 1 个团队中,而 1 个团队可以有多个用户。
因此,据我了解,这是从团队到用户端的 OneToMany。
我已将 UserId 和 TeamId 一起作为复合键,并使其在 JoinTable(User_Team) 中唯一,因此 1 个用户不能在多个团队中。
我的疑问是是否有必要将表单独分解为 Team 表。我不能只在一个表中包含所有 3 个字段。有人可以解释一下它是如何不规范化的。也让我知道在这种情况下是否需要 JoinTable。