我是使用 SQL Server 2012 构建操作数据存储 (ODS) 数据库的团队的一员,我们的一些分析师将使用该数据库进行预测建模。ODS 将包含我们制造的单一产品的制造生产数据。
我们将在 ODS 中有数百个表。但是,我们将有一个单一的核心表,其中将包含有关每个制造项目(每年数千万)的关键信息(生命周期信息)。我们的产品在制造工厂制造,沿着生产线经过各种流程大约需要 2.5 小时。我们希望在此核心表中存储各种单独的制造和制造后信息。一个示例数据可能是产品进入特定烤箱的时间。
我们已经决定如何构建这个表。我们可以创建一个宽表(许多列)或一个窄表,其中大多数列是行(作为属性值)。我从来没有设计和使用过非常窄的表结构,并且列被视为表中的行。
我想要一些关于宽表与窄表的优缺点的反馈。以下内容可能有助于讨论此问题:
每年生产的产品数量:几百万(这些产品实例中的每一个都将在核心表中占一行)
是否经常查询此表:是的,非常频繁。它将是许多子表的父级。
潜在的列数(或行属性):75 到 150+
如果更多信息有用,我很乐意提供。