是否可以通过将它们存储在单个字段中来实现,或者是轨道名称/ URL的关系表是唯一的方法吗?
答案 0 :(得分:2)
Table: Album
ID/PK (your choice of primary key philosophy)
AlbumName
Table: Track
ID/PK (optional, could make AlbumFK, TrackNumber the primary key)
AlbumFK REFERENCES (Album.PK)
TrackNumber
TrackName
TrackURL
答案 1 :(得分:1)
传统方法是让每个轨道有一个表(包含任何元数据)。为每个专辑设置另一个表格,以及第三个表格,用于记录哪些专辑的轨道与哪个专辑的关联。
答案 2 :(得分:1)
使用两个表格,一个用于专辑,一个用于曲目。
Album
-----
Id
Name
Artist
etc...
Track
-----
Id
AlbumId(Foreign Key to Album Table)
Name
URL
您还可以使用加入trackId和AlbumId字段的第三个表来扩充它(因此在Track表中没有AlbumId)。第二种方法的优点是,它可以让你在许多专辑(例如编辑)中出现时重复使用录音。
答案 3 :(得分:1)
完全有可能,您可以将字段存储为逗号分隔或XML数据。
是否明智是另一个问题 - 如果你想查询有多少张专辑有超过10首曲目,例如你将无法为此编写SQL查询而你将不得不求助于将数据拉回到您的应用程序中并将其解析到那里并不理想。
另一种选择是将数据存储在单独的“轨道”表中(即标准化的),但也提供关于那些以非规范化方式将数据作为单个字段提供的表的视图。然后,您将获得正确结构化数据的好处,并能够从视图中将数据作为单个字段进行查询。
答案 4 :(得分:0)
关于Database Normalization的维基百科文章做出了合理的努力来解释规范化的目的......以及规范化规则旨在防止的各种异常。