我试图建立一个数据表结构,最好支持以下标准:为未知数量的列设计数据表的最佳方法是什么?
1)我不知道表有多少列。
- 我在某些情况下可能需要6列,或在其他情况下需要10列。我不认为这张桌子需要20列或更多列,但我也不能保证永远不会需要。
2)我需要考虑存储空间和报告速度。
- 此表需要存储数百万条记录,并且报表将针对此表运行。我知道摆脱高度规范化的表格从报告的角度来看很困难,所以我想解除报告的规范化。但是,我也不知道是否为了避免一些规范化而简单地违约到大量的列是一个好主意,因为我可能会在表的末尾的许多列中结束大量的NULLS,那些将(我认为)都占用了一些存储空间。
3)如果我必须在存储空间和报表性能之间进行选择,我会在性能方面表现出色。我不是一个商业智能专家,我不是一个T-SQL专家(我将使用SQL Server),所以我很确定在这里有很好的一点,我只是忽略了它。因此,我再次转向了精彩的SO社区寻求建议,并且让我的头骨有一些感觉。
在这种情况下你会如何设计表格?我错过了什么细节,仍然需要考虑?
除了简单提及困难的旋转之外,是否有一个原因,您是否回避了'product_property'和'product_property_value'表集? – 2011-04-05 20:40:59
凯文 - 不要product_property和product_property_value有它自己的问题?所有东西(日期,数字)都应该作为字符串存储,约束难以实现,当然,即使是非常基本的“选择”查询,也是如此。 – 2011-04-05 21:07:48
我对这些事情的理解是有限的,但是由于Rajesh引用的理由,我对此不甚了解。 – campbelt 2011-04-05 22:02:17