【发布时间】:2012-08-28 18:56:17
【问题描述】:
我正在尝试将庞大的数据电子表格转换为数据库,以便更轻松地进行数据分析,但我遇到了列过多的问题。我已尽力了解规范化,但我很难将其应用于此用例。
场景
我们正在对矩形块执行 N 独立测量。测量包括:
- 长度(或测量 0)
- 宽度(或测量值 1)
- 高度(或测量值 2)
- 质量(或测量 3)
- 颜色(或测量 4)
- ...
- 测量N
有超过 7000 个测量值(复杂的块)!测量有限制。如果一个块未能通过一次或多次测量,则重复所有测量以进行验证。如果再次失败,则认为该块失败。
这些块是序列化的,有数千个。
数据源
一个巨大的电子表格(表格)。这些字段是:块编号、长度、宽度、高度、质量、颜色、...、测量 N。每一行代表一次测试运行或所有测量的执行。由于我们有重新测试政策,因此可能会有多行结果来自同一块。
救命!
此源表似乎是一种直观的格式,但似乎不是数据库的最佳格式。起初我试图把它放在一个 SQLite 数据库中并遇到了 2000 列的限制。是的,我可以使用更多列重新编译 SQLite 或使用另一个数据库引擎,但这听起来更像是一个数据库设计问题。你有更好的设计理念吗?
附:抱歉这么久,但感谢您的阅读!
【问题讨论】:
-
所有测量值的数据类型是否相同?也就是说,所有测量值都是整数,还是浮点数,还是小数?
-
大多数测量值是浮点数,但有些是文本,例如颜色。如果有显着的好处,我想我可以根据它们的值格式将测量分成几组。在这个后处理应用程序中,最大性能并不像可访问性那么重要。
-
您总是一次进行 7000 次测量,还是有时会停止测量?
-
有些我们停止了。根据测量结果,某些故障可能会停止整个测试运行。
标签: database sqlite normalization