Hi trexx,
Thanks again for the help, I really appreciate it.
I've been studying normalization for the past few weeks and have been through that great article. Thanks to Shrike and Weedpacket's advice, and Googled tutorials, I'm on my way to a redundant-free DB. I just have a few straggling questions before I commit 100% because it's a major overhaul. These are things that aren't addressed specifically that I could find.
When you said to avoid 1:1 relationships that aren't necessary, can you please elaborate a little more? The song_info table is currently all integers which I thought would make for speedier queries, but is seperating the song titles into it's own table necessary? Whether the song_title is put in song table or song_info, it is only listed one time in the database. Is it therefore unnecessary to seperate? My assumption was that the all-number table would be speedy to query and then I could just grab the song_title after the calculations using LEFT JOIN on (songid). I would prefer to have them all in one table if I don't take a hit on performance anywhere. The query will already be joining other tables where redundant info was eliminated. (like genre_id or country_id), so I'm liking the sounds of having the song_title in the same table as the rest.
So this is my million dollar question:
I also have a seperate table for song_details that has about 10 columns of items like song_description and lyrics that are ONLY called when on the song page itself. No item in song_details would be in a WHERE statement and it is just used as storage until somebody visits the song_page where it is extracted. I kept them in a seperate table from song_info under the impression that it would be easier to sort through a table with bulky text fields eliminated. However, if mysql ignores the unmentioned columns, and no info in song_details is redundant; am I better off having it all in one table? including song_titles?
trexx, I really hope you can help me out with just that one final question. I'm extremely anxious to get this underway but it's my first normalization attempt and on a site already live with 10,000 members. I'm just hoping to hear how somebody who's been down that road before would go about it. Thank you very much! 🙂