我需要你帮助设计一张桌子。
我有一些组表,我们需要从包含列名和数据的xml文件中加载该组表中的数据。
列名实际上是某些主列的索引,如activity_col1
,activity_col2
等等,并且每次都不固定,有时同一个表文件包含1000列,有些列可能有10列值时间也有最大限制也定义所以没有文件将包含多个
每组2000列。
所以我需要设计一个最好的解决方案表,我还需要对列值进行聚合。这些文件包含最低级别的数据,我需要将这些数据存储在min表中,然后需要在一小时,一天,一周和一个月内汇总这些最小数据。
如果我在所有表中创建最大列,但每次都不会在所有列中出现数据,因此这种设计似乎不好,因为大多数值都是null。
如果我在列名列中插入列名作为行,而在值列中插入每列值的值,则聚合对我来说将是一项繁琐的任务 它会影响表现。
请建议。
答案 0 :(得分:0)
一个选项是EAV,但构建,查询和插入更加复杂,可读性非常低。
您需要无架构设计,允许无限数量的列,
你最好的选择可能是使用NoSQL解决方案。尽管EAV
相对于关系数据库的弱点也适用于NoSQL
替代方案。
另请看这里:
建议(优先):
EAV
,如果您使用的是关系数据库,那就是
你转动整个桌子或一部分(在另一个
表)在它的一边。如果您已经拥有,这是一个不错的选择
内部的关系数据库,你无法轻易离开。NoSQL
,如果对你来说无关紧要DBMS
这是非常的
灵活而快速,而不是所有的报告编写者
支持这种存储方式。有很多示例数据库
NoSQL
的实现。似乎最受欢迎的那个
现在,是MongoDB
。以及我建议您不要使用的最后一个选项:
XML
列的标准表,如果您不需要
查询它们,您只想以普通方式存储和检索
使用一些额外用法的文字。我希望对你有所帮助:)。