我正在设置一个用于数据管理的 Web 界面。用户上传 CSV 或类似结构的文件,我想将这些文件存储在数据库中,以便他们可以对它们进行操作——过滤、排序、绘图等。
我不知道如何在数据库中正确建模。我有几个想法,但似乎没有一个是正确的方法。
为每个上传的 CSV 创建一个新表。这意味着可以适当地键入每一列(整数、字符串、日期等),并且每条记录都将对应于 CSV 文件中的一行。这似乎是问题的自然概念——但是如果我必须为每个上传的文件创建一个新表,性能会成为问题吗?
制作一个表格,其中每个记录代表一个数据集 (CSV),并有其他表格,其中数据点在其记录中具有其数据集的 id。这意味着来自给定数据集的所有数据都分布在不同的表中,并且会有很多冗余(因为每个数据点都会存储数据集的 id)。但是,这意味着不必为每个数据集创建表。
2 的其他变体。我的大多数其他想法都是对数字 2 的变体,其中包含不同数量的间接。
我的问题本质上是“我如何正确建模?”,也就是说,具有合理扩展的能力。
大多数数据都是科学的,那么我该如何处理大小不一的数据集,从微不足道的(比如 10 列和 100 行)到大量的(数百列和数千/数百万行)?
tl; dr:我如何从数据库中任意数量的格式良好的 CSV 中对任意数据进行建模,每个 CSV 的新表的性能是否可以接受?