Troy,
one thing I notice staright away are that your tables are type InnoDB whereas I would normally work with MyISAM tables (big advantage here for your type of site is full text searching capability)
you are correct there are often several ways of achieving your end result with databases and my way is borne out of experience of what works for me
I am a bit pushed for time now as I am on vacation next week and have a project to finish (or at least try to) before I leave so if you can wait for a week drop me an email through my website and I'll get in touch and get a sql dump off your db from you and then I can at least make some suggestions as to what might be the best way to proceed.