Well, there are a couple ways to do it, but if you're going to have a never-ending list of artists that people can vote on, then you need several tables. This also leaves it open to add things other than music to the list (which is what intrigues me about this all). As you can see, I design overly complex schemas. They're way more fun than simple ones. Honestly, they're sometimes hard to manage, but they're a lot easier to extend and add to, especially in this case where you have an ever-growing list of ratings linked to an ever-changing/growing list of artists and genres. The item_types table could grow as well, to add authors, books, movies, actors, etc. I have some idea that you could use the ODP to cut down on the confusion of artist names, and to add to it (so you could end up basically rating ODP categories). Also, this is a first stab at this. I usually way overdo this in the first draft and then trim it down once I start building it. I think I'll try to learn PHP and MySQL and actually build this (maybe using Movies instead, but you never know). With this schema, a lot of the logic will be held in application logic instead of the database, which I think could be mitigated some with secondary id's and a simple API (so no one gets access to the db - just the API).
Here's the schema that comes to mind:
users:
user_taste::
items:
item_types:
music_artists:
| Your Name: | |
| Your E-mail: | |
| Your Site: | |
| Your Comment: | |
You can use Textile formatting in your comments (but no HTML). Here's a quick cheatsheet:
This is the personal site and weblog of Kevin Lawver and Jen Lawver. The views expressed on this site are our's and not those of our family, friends or employers. license
Powered by: Movable Type
Hosted by DreamHost