Мне было поручено создать базу данных по сценарию.Однако при разработке своего решения я обнаружил, что в одной ячейке будет несколько значений.Нам сказали, что это повторяющаяся группа, и ее следует избегать в базе данных.
Я получаю повторяющиеся группы, когда хочу связать песни из альбома с альбомом, в котором они находятся.Например, в альбоме может быть одна или несколько песен.Однако песня может быть в одном или нескольких альбомах (Дин Мартин - Silver Bells может быть в альбоме Christmas Hits и альбоме Дина Мартина).
Если я буду ссылаться на каждую песню в ее альбоме, я буду использовать AlbumIdв качестве внешнего ключа.Однако, если бы это было в нескольких альбомах, то у меня было бы несколько AlbumId в качестве внешнего ключа.Это дает мне повторяющуюся группу, поскольку в одной и той же ячейке будет несколько идентификаторов.
Если бы это было отменено путем сохранения всех песен альбома в сущности альбома, у меня возникла бы та же проблема, что и SongId был бы чужими каждый альбом будет иметь несколько SongId в одной и той же ячейке.
У меня есть следующие объекты:
song
и
album
Сущность песни будет содержать следующие типы атрибутов:
- SongId (PK)
- SongDuration
- AlbumId (FK)
- AudioFileSize
- AudioFile
- SongTitle
- SongLyrics
- SongNotes
Сущность альбома будет содержать следующие типы атрибутов:
- AlbumId (PK)
- AlbumTitle
- NumOfTracks
- ReleaseDate
- ProductionLabel (FK) // Переход к другой таблице без проблем.
- AlbumCoverImage
- CoverImageStory
- AmountOfCDs
Я довольно новичок в дизайне базы данных и чувствую, что хорошо его понял.Тем не менее, я озадачен, как решить эту проблему.
Если потребуется дополнительная информация о базе данных, я с радостью ее предоставлю.
Любая помощь будет принята с благодарностью.
С уважением,
Стив.