Sql 我应该创建联接表还是添加外键

Sql 我应该创建联接表还是添加外键,sql,sql-server,Sql,Sql Server,我正忙着为我的应用程序设计数据库,我建立了表之间的关系。。。之后,我意识到,与其使用外键并将其放在另一个表中,我只能使用一个新的联合表,该表将包含每个表的主键 不确定是否有人曾经实现过它 另外,Microsoft在下图的ASP.Net MVC模板中为用户和角色创建了一个名为**UsersInRoles(联合表)的附加表,而不是在多个表中添加外键。** PS:我不是从约束的角度来指外键,而是从设计的角度(通用数据库设计)来指外键。不清楚您使用的是什么DBMS,但我个人更喜欢使用外键,因为许多DB

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

不确定是否有人曾经实现过它

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


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

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

您使用的是MySQL、MS SQL Server还是Oracle?将外键放在其他表中?!?关系是1对多还是多对多?我正在使用SQL Server进行此项目。但我也有即将到来的项目,我将使用MySQL。但是数据库设计对于所有的数据库来说都是一个通用的概念,与特定的数据库无关。。据我所知,@GirlCode。对于1-n关系,应该使用没有中间表的外键;当有m-n关系时,应该使用中间表。您尚未指定要建模的内容,因此您的问题不完整。那么,为什么上图中的Microsoft使用联合表呢?(ASP.Net MVC模板应用程序)