Eri*_*son 5 normalization database-design dependencies
我相信这个关系/表是第一范式(1NF):
集合(cd_id,标题,标签,艺术家,类型,国家,song_id,song_title,长度)
注意:粗体表示键。
我设法确定的内容:
{cd_id, song_id} ? {song_title, length}
{cd_id} ? {title, label, artist, type, country}
Run Code Online (Sandbox Code Playgroud)
所涉及的属性/列的上下文信息和/或样本值:
附加功能
一张CD下的每首歌,意味着会有重复。每次添加属于 CD 的歌曲。
小智 1
存在的一个问题是,一首歌曲可能会作为单曲发行,然后作为专辑的一部分发行,然后在“精选”专辑中重新发行。这将导致我有一个歌曲表,然后创建一个连接表,将专辑表连接到歌曲表。该连接表允许将一首歌曲连接到多个专辑。该表的 PK 可以是 Album_ID 和 Song_ID,使其成为一个组合。我还会考虑创建一个艺术家表,该表将分隔艺术家姓名、原籍国和团体/独奏等数据。这也可能阻止歌手/乐队更改名字的“王子效应”。表格(PK 为粗体)
专辑(Album_ID、Artist_ID、Album_Title、Release_Date)
艺术家(艺术家 ID、原籍国、类型、艺术家姓名)
歌曲(歌曲 ID、歌曲名称、歌曲持续时间)
歌曲_专辑(专辑_ID、歌曲_ID、曲目_编号)