I used Sybase's PowerDesigner 9.0 to create the data model that Figure 2 (in the main article) shows. The design is a conceptual data model; therefore, the foreign keys aren't displayed as attributes. Instead, the relationships imply the foreign keys. When I generate a physical data model, which is the step that creates the tables just before generating SQL code, I can see the foreign key attributes listed as part of each entity. The physical data model's Track entity has two foreign key attributes—Recording.RecordingID and Recording Artist.RecordingArtistID. As in the original Music Collection data model from "Real-Life Database Design," April 2001, InstantDoc ID 19948, the relationships read as follows:
- A recording contains one-to-many (1:M) tracks.
- A track is found on only one recording.
- A recording artist records zero to many tracks.
- A track is recorded by only one artist.