MsSQL   发布时间:2022-05-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了数据库 – 多对多表中的一个或两个主键?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的数据库中有以下几个表,它们具有多对多关系,这是由一个连接表来表示的,它具有每个主表的主键的外键: @H_607_2@>小部件:WidgetID(PK),标题,价格
> User:UserID(PK),FirstName,LastName

@H_607_2@假设每个User-Widget组合是唯一的.我可以看到两个选项,用于如何构造定义数据关系的连接表:

@H_607_2@> UserWidgets1:UserWidgetID(PK),WidgetID(FK),UserID(FK)
> UserWidgets2:WidgetID(PK,FK),UserID(PK,FK)

@H_607_2@选项1具有单个主键的列.然而,这似乎是不必要的,因为存储在表中的唯一数据是两个主表之间的关系,并且此关系本身可以形成唯一的键.因此导致选项2具有两列主键,但是丢失了选项1具有的一列唯一标识符.我也可以选择在第一个表中添加一个两列唯一索引(WidgetID,UserID).

@H_607_2@两个表现方式之间是否存在真正的区别,或者任何理由倾向于另一个方法来构造UserWidget多对多表?

@R_419_5606@

在这两种情况下,您只能有一个主键.第二个是所谓的复合键.引入新专栏没有什么好的理由.实际上,您必须在所有候选键上保留唯一的索引.添加一个新列后,只需维护开销. @H_607_2@选择2.

大佬总结

以上是大佬教程为你收集整理的数据库 – 多对多表中的一个或两个主键?全部内容,希望文章能够帮你解决数据库 – 多对多表中的一个或两个主键?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:标题