I am planning to build myself a personal website. Partly to teach myself PHP and MySQL along with exercising my current XHTML and CSS skils, and partly for my own vanity 
Since I want my site to be database driven I need to create a good database before I think about doing anything else.
The way I am planning to set up my site is to have several sections that covers each of my main interests - Music, Computing, Hiking etc, and the content [or articles] for these parts of the site will be held in a database so i can add new stuff, edit stuff, make it searchable yadda yadda yadda.
Now, while I can design a very simple database, I am struggling with this one, simply because of the large amount of information I need to store.
Part of the problem is that one section [Hiking] requires fields describing the location of say a particular walk described in an article. I could add this information to the article body, but it would make automatically sorting the routes via different criteria [specific location, region, country etc] much harder. None of this info is needed for the other sections, which means a separate "Articles" table isn't going to cut it...
Below is an example of the data I would like to keep for my site:
[Sorry about the rubbish formatting, don't know how to display tables nicely on here]
From the above, I came up with the following tables:
user_article
username [pk]
article_number [pk]
user
username [pk]
password
email
article
article_number [pk]
article_title
article_body
article_date
article_section
article_subsection
article_area
article_region
article_country
That's as far as I have gotten. I am not sure what to do from here. I know that section, subsection, area, region and country should be separated out into their own tables, to avoid redudancy... but I am not sure how the area/region/country table/s would interact with the articles table, since only specific articles [those belonging to Hiking] require that information...
As you can see it is all very complicated! Any help with this [or a different approach altogether] would be greatly appreciated.

Since I want my site to be database driven I need to create a good database before I think about doing anything else.
The way I am planning to set up my site is to have several sections that covers each of my main interests - Music, Computing, Hiking etc, and the content [or articles] for these parts of the site will be held in a database so i can add new stuff, edit stuff, make it searchable yadda yadda yadda.
Now, while I can design a very simple database, I am struggling with this one, simply because of the large amount of information I need to store.
Part of the problem is that one section [Hiking] requires fields describing the location of say a particular walk described in an article. I could add this information to the article body, but it would make automatically sorting the routes via different criteria [specific location, region, country etc] much harder. None of this info is needed for the other sections, which means a separate "Articles" table isn't going to cut it...
Below is an example of the data I would like to keep for my site:
Code:
[FONT=Courier New]username password email article_number article_title article_body article_date article_section article_subsection article_area article_region article_country
siriusb 123 [email protected] 1 Llyn Ogwen blah blah 28092007 hiking route Carneddau Snowdonia UK
bob11 321 [email protected] 2 New album blaaaah 25092007 music new NULL NULL NULL
jim99 111 [email protected] 3 V6 Client bleh 28092007 computing folding NULL NULL NULL
[/FONT]
From the above, I came up with the following tables:
user_article
username [pk]
article_number [pk]
user
username [pk]
password
article
article_number [pk]
article_title
article_body
article_date
article_section
article_subsection
article_area
article_region
article_country
That's as far as I have gotten. I am not sure what to do from here. I know that section, subsection, area, region and country should be separated out into their own tables, to avoid redudancy... but I am not sure how the area/region/country table/s would interact with the articles table, since only specific articles [those belonging to Hiking] require that information...
As you can see it is all very complicated! Any help with this [or a different approach altogether] would be greatly appreciated.