#mysql #normalization
#mysql #нормализация
Вопрос:
Это нормализовано должным образом?? есть ли более эффективный способ проектирования этой БД?
Профиль может содержать неограниченное количество альбомов, любой пользователь может создать альбом из чьих угодно видео. Альбом может содержать много видео, и видео может принадлежать нескольким альбомам. Вот как я это сделал . . .
[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)
Есть ли лучший / более эффективный способ . , , (должен ли я «объединить» альбом и AlbumContent в одну таблицу … или это не-нет ?? )
Ответ №1:
[Table] Album
[pk] Id
Title
[fk] Owner (Profile.Id)
Created
[Table] AlbumContent
[fk][pk] Album (Album.Id)
[fk][pk] Video (Video.Id)
я бы использовал составной первичный ключ для содержимого альбома
Содержимое альбома на самом деле не нуждается в замене pk
если только вы не хотите, чтобы одно видео было в вашем альбоме несколько раз
Ответ №2:
Я бы просто переименовал AlbumContent в AlbumVideos, если весь контент — это видео.
Кроме того, если в альбоме может быть более 1 видео, я БЫ НЕ стал «объединять» альбом и AlbumContent в одну таблицу.
В остальном я думаю, что дизайн в порядке.