Nations versus States: One Database Table or Two?

A

Anonymous

Guest
I'm beginning to learn about MySQL databases and am looking ahead to my first big project, which focuses on the world's nations and states. I'm going to create a huge database featuring information on all the world's nations, with columns (or fields) featuring each nation's name, abbreviation, capital, size, population and on and on.

I'm also going to include information on the 50 states, Canada's provinces, Japan's prefectures, etc.

But I'm new to databases, and I'm not sure if I should include states and provinces with nations, or if I should make separate database tables - one focusing on nations, another on the 50 states, a third on Canada's provinces, etc.

An important point is that I have to link each state and province with its country. For example, if I displayed a table with all 50 states and all of Mexico's states, I'd want to note which were U.S. states and which were Mexican estados. So I assume I'd have to make a separate column that says "U.S." after every state.

So, if you've done anything similar, do you think one big table makes more sense, or separate tables?
 
Two tables seems ideal. One for all nations, and another for everything else. Each nation should have a unique ID, and that should be used as a foreign key in the other table to link each state/province to its nation. This is a fairly standard database setup.
 
Back
Top