这个DB设计是否可以接受,还是有更好的方法?

时间:2011-11-07 22:10:28

标签: mysql normalization

这是否正常化?有没有更有效的方法来设计这个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合并到一个表中......还是那个禁止?)

2 个答案:

答案 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个视频,那么我就不会将“专辑”和“专辑内容”合并到一个表格中。

否则我觉得设计还可以。