Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I want to make a database about one artist's music records... CD, Vinyl, Cassette, 8 Track, Singles, Ep, Lp, etc...

I believe I have a good normalized model that will achieve my needs, however before creating the database, I want to ask the experts so that my model is solid from the start.

Here are some models that I'm looking to implement:

ALBUM (Vinyl)
-------------
**VINYL**
SIDE A
   1. Track name
   2.. Track name
   3. Track name
   ...
SIDE B
   1. Track name
   2. Track name
   3. Track name
   ...


ALBUM (Double Vinyl)
-------------
**VINYL 1**
SIDE A
   1. Track name
   2. Track name
   3. Track name
   ...
SIDE B
   1. Track name
   2. Track name
   3. Track name
   ...

**VINYL 2**
SIDE A
   1. Track name
   2. Track name
   3. Track name
...
SIDE B
   1. Track name
   2. Track name
   3. Track name
   ...


ALBUM (CD)
-------------
**CD**
   1. Track name
   2. Track name
   3. Track name
   ...

   Extra Tracks
   11. Track name
   12. Track name
   ...


ALBUM (Compilation)
-------------
**CD 1**
   1.Track name
   2. Track name
   3. Track name
   ...
**CD 2**
   1.Track name
   2. Track name
   3. Track name
   ...
**DVD**
   1. Track name
   2. Track name
   3. Track name
   ...

ALBUM (8 Track)
-------------
**8 TRACK**
Program 1
   1. Track name
   2. Track name
   3. Track name
   ...

Program 2
   1. Track name
   2. Track name
   3. Track name
   ...

Program 3
   ...
Program 4
   ...

ALBUM (Cassette)
-------------
**CASSETTE**
SIDE A
   1. Track name
   2. Track name
   3. Track name
   ...

SIDE B
   1. Track name
   2. Track name
   3. Track name
   ...

Basically, there are albums that contain discs that contain tracks. 1 album can have multiple discs and 1 disc can only be part of one album. 1 disc can have multiple tracks and 1 track can be in multiple discs.

This is a basic normalized model I came up with. Is this a good foundation?

album (album_id, name, description, date_released, ...)

disclabel (disclabel_id, disclabel)
disc (disc_id, album_id, disclabel_id, description, position)

song (song_id, name, duration, lyrics, ...)

disclocation (disclocation_id, disclocation, position)
disctrack (disc_id, disclocation_id, song_id, tracknumber)
share|improve this question
    
Is "disclabel" attribute of "disc"? And I noticed there are different media types (Vinyl, Cassette & CD). Would it serve your purpose if you have "DataType" in there? –  MarlonRibunal Aug 24 '12 at 0:57
    
agree. "disctype" makes more sense then "disclabel"... thanks –  Marco Aug 24 '12 at 19:01

1 Answer 1

Here's an example of similar Data Model: http://www.databaseanswers.org/data_models/cd_collection/index.htm

This model has a lot of clarity than what you have describe. Take a look.

share|improve this answer
    
that is the first page i've found when researching my model... took a lot of the concept and apply it to my model... –  Marco Aug 24 '12 at 19:02
    
the thing i'm not sure is if i need to normalize the 'disclocation' even more... One disc contains multiple location... or a track can be inside a location... –  Marco Aug 24 '12 at 19:23
    
for example disclocation(disclocation_id, discid, position)... disctrack(song_id, tracknumber,disclocation_id) –  Marco Aug 24 '12 at 19:24
    
forget about normalization. Focus on your business requirements and how to deliver results. Don't overdo normalization. –  MarlonRibunal Sep 26 '12 at 18:34

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.