I'm designing a database that needs to store floating point data values from data acquisition boards. It sounds pretty easy accept for this one problem with the way our system is designed. From the data values we can get, we only actually log a subset. That subset of data is written to a file and change on the fly. I.e. a new data value may be added or taken away from that subset. When that happens a new header which describes the data is also written out.
File looks like this:
Time Data1 Data2 Data3
Feb1 1.00 2.00 3.00
Feb1 1.01 2.02 3.03
Time Data1 Data2 Data3 Data4 <---- New value being logged
Feb1 1.00 2.00 3.00 4.00
My question is what is the best way to design a database that has tables whose fields may change? It wouldn't be very often but the flexibility needs to be there. I thought perhaps every time I see a new header I could create a new table but as I've read elsewhere on the boards generating reports would be a nightmare. If I have one table and I add a column everytime a logged data value is added then I have gaps in the table.