首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库设计:针对大量列值的适当的表设计

问数据库设计:针对大量列值的适当的表设计
EN

Stack Overflow用户
提问于 2008-10-03 20:48:02
回答 7查看 2K关注 0票数 1

我希望进行多次不同的实验。在每次试验之后,我得到了一组“大”的输出统计数据--比方说,1000。我想将我的实验结果存储在一个表中,但是最好的方法是什么呢?

选项1

有一个包含1000列的表。看起来不是个好主意。如果某一天的统计数超过了最大列数怎么办?

选项2

有一个包含三列的表。假设ID、StatisticType和StatisticValue。这样,您就可以获得任意数量的统计数据。然而,读取单个实验的统计数据变得更加复杂。此外,如果不同的统计数据是不同的数据类型怎么办?

有什么建议吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-10-03 20:51:20

选项2,ID、TrialID、StatisticID、StatisticValue

有了正确的索引,它将执行得相当好(在SQL Server2005中,您可以使用PIVOT相当容易地获得列上的值)。

当统计数据是不同的数据类型时,问题就变得更加有趣了,但在许多情况下,我只是增大了数据类型(有时整数只是在钱字段中结束)。对于其他不兼容的类型,我认为最好的设计是为每种类型单独的表,但我也见过多列或自由格式的文本列。

票数 7
EN

Stack Overflow用户

发布于 2008-10-03 21:07:08

我赞同科迪的回答(here),并补充了一些想法和解释。

表的关键字将是trialID,statisticType。每个试验的每个统计数据都有一行,每个试验有1000行。要获取单个实验的值,请选择特定trialID的行(如matli所示。

您可以添加一个“试验大师”表,每个试验只有一行(trialID作为关键字),其中包含相关信息(日期、时间、注释、人员...)关于那次特殊的审判。这将允许基于试验属性进行分组和分析。例如,上午的试验表现与下午的试验不同,还是泰山的试验与简的试验不同?

您还可以添加一个"Stat Master“表,该表为每个statisticType都有一行,并且包含有关统计信息的属性。如果不同的统计数据具有不同的属性,或者如果您想对某些统计数据进行分组,这可能很有价值。

玩得开心!

票数 5
EN

Stack Overflow用户

发布于 2008-10-03 20:55:35

关系数据库中的列是存储在搜索、排序和其他信息处理中引用的数据的好地方。如果要存储大量的值,可以使用其他一些格式,比如XML,并将它们全部存储在一个列中。在这种情况下,XML将为您提供可读性、可维护性、灵活性甚至一些可搜索性(SQL Server 2005+)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/168833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档