I'm sorry if I have posted this in the wrong forum , but it seemed to be the nearest to the subject I would like to raise.
We are building a reporting database and I'm confused as to the correct table structure.
Image a feed coming in that shows the type of government by country:
Something like:
United States of America, A
Where the first column is the name of the country, and the second column contains a code that represents the type of government. Each country name would be unique , but a lot of the forms of governments would be identical. There will be a reference table which will translate the code.
Every few months a new feed would come in and some countries may have changed their form of government. In which case a new row will be added showing the new data with a date from which it is valid (type-2).
My question is how to represent this in a SQL server database. With my OLTP background, there is a temptation to create a table which is something like GovermentType with a primary key of GovermentTypeId, and then on the Country table a foreign key constraint back to the GovertmentType.
There is pressure however to remove as many references tables as possible so as to 'speed up the reporting'. So in this case the country table will contain a varchar field with the government type in it e.g. 'Federal presidential constitutional republic'.
Obviously the example above is made up , and the number of 'countries' will be in the region of 600,000 and the amount of varchar fields will add up to over 1000 characters.
Is this the correct approach for a reporting database?
Thanks