I'm looking for a little advice on how to setup a database to hold numeric data for a modeling application. My users have a spreadsheet that holds data for use in a modeling application. The data is structured as such: Each tab is a line of business, columns are years and rows are elements. The cells are standard decimal numbers xx.xx etc.
2005 2006 2007 2008 2009 2010 2011 2012
data1 2.5 3.5
data2
data3
The second application can receive data from either an ole link from excel or odbc query. I'd like to put the data into a database (sql server or oracle) but I am unsure on how to structure the tables balancing how the data gets into the database, user interactions and then output queries to the second application. The line of business, elements and years are all not fixed.
I know it is basically a pivot table so the answer I am looking at is a table with {line, element, year, value}. Given the problems associated with getting data in and out with this format would I be better off with a table of {line, element, year1..yearx} with some arbitrary number of columns for future years? This isn't a classic case of entity attribute value but somewhat similar. The elements don't change very often but there are a large number of them 300+. I could group them into separate tables and use a structure like {line, year, element1..elementX} This would probably be the simplest to develop, but doesn't seem "right".
The output queries would typically be kept to a single data element with line, year, and values passed to the second application via odbc.