这是否正常化?有没有更有效的方法来设计这个DB?
个人资料可以拥有无限量的相册,任何用户都可以从任何人的视频创建相册。 相册可能包含许多视频,视频可能属于多个相册。 这就是我做的方式。 。
[Table] Profile
[pk] Id
(first, Last, Email. . . ect)
[Table] Album
[pk] Id
Title
[fk] Owner (Profile.Id)
Created
[Table] AlbumContent
[pk] Id
[fk] Album (Album.Id)
[fk] Video (Video.Id)
[Table] Video
[pk] Id
[fk] Owner (Profile.Id)
是否有更好/更有效的方式。 。 。 (我应该将'Album和AlbumContent合并到一个表中......还是那个禁止?)
答案 0 :(得分:3)
[Table] Album
[pk] Id
Title
[fk] Owner (Profile.Id)
Created
[Table] AlbumContent
[fk][pk] Album (Album.Id)
[fk][pk] Video (Video.Id)
我会在相册内容上使用复合主键 专辑内容并不真正需要代理pk 除非您在相册中多次想要一个视频
答案 1 :(得分:1)
如果所有内容都是视频,我会将AlbumContent重命名为AlbumVideos。
此外,如果一张专辑可以有超过1个视频,那么我就不会将“专辑”和“专辑内容”合并到一个表格中。
否则我觉得设计还可以。