将另一个表与现有的连接表连接起来

时间:2021-01-09 04:32:19

标签: mysql orm relational-database typeorm

我对数据库设计还很陌生,可以对我正在从事的项目提供一些指导。

我有三个现有表 accountsusers 和一个表示多对多关系的连接表,称为 accounts_users

如您所料,accounts_users 表如下所示:

| accountId | userId |
| --------- | ------ |
| 1         | 1      |
| 1         | 2      |
| 2         | 1      |

我需要为用户添加角色,其中一个用户可以为他们所属的每个帐户拥有一个单一的角色。

我已经创建了一个角色表(包含 idname),但我正在寻找下一步的指导,以便在 {{1} } 和 roles 表。

是否应该在包含 accounts_usersaccounts_users 表中添加额外的列,还是应该添加另一个连接表?

谢谢!

1 个答案:

答案 0 :(得分:1)

在您的联结表中存储额外的数据是完全可以的。但是,您可以使用不同的方法,具体取决于您的“角色”实体的真正含义。

  • 如果每个帐户-用户对都具有关联的唯一角色(1:1 关系),您可以直接在 name 表中创建 accounts_users 列。
  • 如果多个帐户-用户对(1:N 关系)之间共享一个角色,则应使用单独的 roles 表并通过将 roleId 外键添加到 {{1} } table(就像你自己写的一样)。

第二种解决方案也适用于角色实体携带大量信息(多列,不仅仅是accounts_users)时,因此不希望将不相关和可能不需要的数据弄乱联结表。

相关问题