【问题标题】:Should I create a Joint table or add foreign key我应该创建一个联合表还是添加外键
【发布时间】:2020-04-22 21:33:29
【问题描述】:

我正忙着为我的应用程序设计一个数据库,我建立了表之间的关系......之后,我意识到我只能使用一个新的联合表,而不是使用外键并将其放在另一个表中包含每个表的主键。

不知道有没有人实现过?

此外,Microsoft 在下图中的 ASP.Net MVC 模板中为用户和角色创建了一个名为 **UsersInRoles(联合表)的附加表,而不是在 many 表中添加外键。 **

PS:我指的不是外键约束,而是设计角度(通用数据库设计)。

【问题讨论】:

  • 您使用的是 MySQL、MS SQL Server 还是 Oracle?
  • 将外键放在其他表中?!?
  • 关系是一对多还是多对多?
  • 我正在为这个项目使用 SQL Server。但我也有即将使用 MySQL 的项目。但是数据库设计对于所有这些都是一个通用概念,并且与特定的..从我​​的理解无关。
  • @GirlCode 。 . .对于 1-n 关系,您应该使用没有中间表的外键;当您有 m-n 关系时,您应该使用中间表。您尚未指定要建模的内容,因此您的问题不完整。

标签: sql sql-server


【解决方案1】:

不清楚您使用的是什么 DBMS,但我个人更喜欢使用外键,因为许多 DBMS 和其他相关产品都内置了与外键相关的支持。此外,与使用外键相比,联合/映射表会增加数据冗余。

【讨论】:

  • 那么为什么上图中的微软使用联表呢? (ASP.Net MVC 模板应用)
猜你喜欢
  • 1970-01-01
  • 2016-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多