Очень простая схема для хранения произвольно длинных записей такова:
Table `records`
===============
id
created
... other meta data ...
Table `record_attributes`
=====================
id
record_id
attribute
value
Таким образом, запись CSV может быть сохранена следующим образом:
"Foo","Bar","Baz" // column names
42,"Lorem","Jerry" // first record
7,"Ipsum","Tom" // second record
...
records(1, '2010-1-17', ...)
record_attributes(1, 1, 'Foo', 42)
record_attributes(2, 1, 'Bar', 'Lorem')
record_attributes(3, 1, 'Baz', 'Jerry')
records(2, '2010-1-17', ...)
record_attributes(4, 2, 'Foo', 7)
record_attributes(5, 2, 'Bar', 'Ipsum')
record_attributes(6, 2, 'Baz', 'Tom')
Альтернативой является сохранение записиданные в виде JSON упакованного большого двоичного объекта в одном столбце.Если вам не нужно искать данные, это самый компактный способ, хотя и не очень RDBMS.
Лучше всего подойдет, вероятно, база данных NoSQL , если у вас есть такая опция.