gpt4 book ai didi

mysql - 什么时候可以不使用 PRIMARY KEY?

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:32 26 4
gpt4 key购买 nike

假设我想创建一个简单的数据库,让用户可以创建播放列表并将多首歌曲添加到其中。我只想能够找到在特定播放列表中添加了哪些歌曲。

歌曲表:

`song_id` INT AUTO_INCREMENT PRIMARY KEY, `song_title` VARCHAR

播放列表表:

`playlist_id` INT AUTO_INCREMENT PRIMARY KEY, `playlist_title` VARCHAR

实现这一目标的最佳选择是什么?

  1. playlist 表中添加另一列,并将逗号分隔的歌曲 ID 插入到该列中。我认为这不是一种合适的关系方式,但可以完成工作。

  1. 创建单独的表来存储歌曲 ID 及其所属的播放列表 ID。像 playlist_id INT, song_id INT 两列都是外键。

现在,如果第二个选项更好,我是否应该添加另一列作为主键和 auto_increment,因为它在任何地方都没有用?因为我在网上阅读了一些文章,其中许多文章表明,没有表的主键会以负面方式显着影响其性能。

最佳答案

您应该强烈倾向于选项二,即创建一个将播放列表 ID 与歌曲 ID 相关联的表。在这种情况下,您实际上可以创建一个主键,它是播放列表和歌曲 ID 的组合。

CREATE TABLE playlist_songs (
song_id INT,
playlist_id INT,
PRIMARY KEY (song_id, playlist_id)
)

至于您是否需要playlist_songs 上的自动递增列,这取决于您的情况。从业务逻辑的角度来看,您可能不需要它,因为您可能会使用已经存在的两列来操作表格。

关于mysql - 什么时候可以不使用 PRIMARY KEY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36059508/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com