gpt4 book ai didi

database - DBMS - 数据库中的音乐流派规范化

转载 作者:搜寻专家 更新时间:2023-10-30 21:45:41 25 4
gpt4 key购买 nike

因此,我正在努力思考整个“规范化”的问题。为了更好地理解它,我想出了一个存储歌曲的案例

假设我有以下数据库:

专辑表:

album_name| genre           
album_1| genre_1, genre_2
album_2| genre_1
album_3| genre_2

为了归一化,我想到了下面的做法

专辑表:

album_name| genre_id          
album_1| 3
album_2| 1
album_3| 2

类型表:

genre_id| genre_1| genre_2
0| false| false
1| true| false
2| false| true
3| true| true

因此,如果出现新的流派,我需要做的就是在流派表中创建一个新列,并分配新的相应genre_id。好吧,这将需要填写所有可能的组合,但对于引入的每个新类型,这种情况只会发生一次。

Also, what I thought of, will that be considered "normalizing"? From the examples I have seen around, I haven't seen creation of tables with columns that were originally data.

最佳答案

执行此操作的规范方法是使用三个 表:

Album    | 
album_id | album_name (and maybe other columns)
1 | Rumours
2 | Thriller
3 | To the Moon and Back

Genre
genre_id | genre_name (also maybe other columns)
1 | rock
2 | pop
3 | alternative

AlbumGenre
album_id | genre_id
1 | 1
1 | 2
2 | 2
3 | 2
3 | 3

规范化就是避免存储重复数据。如果您仔细研究这个设计,您会发现关于专辑和流派的信息只存储一次,在每个相应的表中。然后,AlbumGenre 表存储专辑和各种流派之间的关系。该表通常称为“桥梁”表,因为它将专辑与其流派联系起来。

您建议的 Genre 表的问题在于它会重复有关关系的信息,即使这些关系不存在也是如此。此外,如果您需要向数据库添加更多类型,这种方法根本无法很好地扩展。

关于database - DBMS - 数据库中的音乐流派规范化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49714253/

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