复合主键,由其他表的主键组成

时间:2019-03-02 18:49:12

标签: database database-design data-modeling

嗨,我正在尝试合并两个表中的PK(PK是“ video_id”和“ user_id”),以创建特定用户观看的视频的唯一列表。我希望将其组合以最大程度地减少冗余,但是在文档中似乎只有FK用于制造组合PK。如果我将其设置为复合FK,它是否仍然是唯一的(同一用户观看的视频不会有多行)?

1 个答案:

答案 0 :(得分:0)

不知道您在这里要问什么,但以下内容解决了一般性问题。

您在这里有多对多关系。许多用户可以观看一个视频。一个用户可以观看许多视频。

记录这种关系的一般方法是使用第三个表。我们可以将其称为userVideo。它至少具有两列,即UserID和VideoID。正如您所建议的,这些是引用用户和视频表PK的FK。总而言之,它们可以是此第三张表的(综合)PK。可能会有更多列,例如评分,其中会显示用户对视频的欣赏程度。

UserID和VideoID的组合在此表中将是唯一的。如果要存储有关用户每次观看视频的数据,则情况不同。

这能回答您的问题吗?