The maximum number of columns in a regular table is 1024 (see here), so you can't put 2,000 columns in one table.
That basically leaves two options:
- Store each sub-element separately, with 400 columns (along with other identifing infromation, such as elemnt, data/time, and so on).
- Use an entity-attribute-value model (EAV) model, with one row per element, sub-element, and value.
In general, I would lean toward storing one row for each sub-element. This would be especially true if the following are true:
- The columns for each sub-element represent the same thing ("have the same name").
- The columns for each sub-element have the same type.
- The sub-elements always have all 400 columns.
If the columns are typically different, then I would think about an EAV model or a hybrid model.
Whether you need separate tables for Elements
and Subelements
depends on how the results are going to be used. For a complete data model, you might want to include them. If you are "just" doing numerical analysis on measures in the loaded data and not using the data for other purposes (archiving, reporting), then these entities might not be necessary.