title: Normalised vs. denormalised database for similar data
body: <p>I am planning to build a database where I store a large amount of data about music.
  I am storing song-specific information in the <code>db_song</code> table.
  I'd also like to store <em>genres</em>, <em>instruments</em>, <em>samples</em> and <em>playlists</em>.
  Because one song can have multiple genres, instruments, samples and playlists, the big question is:</p>
  
  <p>Does it make more sense to:</p>
  
  <ol>
  <li>Store all these 4 data in separate tables</li>
  <li>Store all these 4 data in a single table, and record <em>type</em> in separate column</li>
  </ol>
  
  <p>The database will be frequently updated but users will request data even more often.</p>
  
  <p>Thanks for your help.</p>
  
  <p>Edit:</p>
  
  <p>As suggested by Amit, with the setup above, there would be a lot of duplicate data.
  What about storing genre and instrument values and playlist titles in distinct tables, and genre, instrument and playlist relations (item to song) in yet another 3 tables.</p>
  
  <p><strong>So the new scenarios:</strong></p>
  
  <ol>
  <li><strong>Store all these 4 data in separate tables + 4 more tables to store item-to-song relations</strong></li>
  <li><strong>Store all these 4 data in a single table, and record <em>type</em> in separate column + relation to song in another column</strong></li>
  </ol>