Sql server 基于隶属度的多维事实表构造

Sql server 基于隶属度的多维事实表构造,sql-server,database,database-design,data-warehouse,Sql Server,Database,Database Design,Data Warehouse,我们正在构建一个数据仓库,在构建事实表时遇到了问题。我们公司以不同级别的会员、促销和费率注册会员。我们希望创建一个事实表,可以显示所有当前成员信息,并能够推出旧信息或对成员的更改。我们使用的表格如下 会员状态|开始日期|结束日期 会员特权|价格|周期|开始日期|结束日期 会员促销|关联折扣|开始日期|结束日期 成员类型|开始日期|结束日期 个人信息|地址|电话|等 我们希望事实表根据个人Id显示所有这些信息。个人信息需要保持维度表,没有多对多关系,因为这些信息在其他事实表中使用。问题是,我们可能

我们正在构建一个数据仓库,在构建事实表时遇到了问题。我们公司以不同级别的会员、促销和费率注册会员。我们希望创建一个事实表,可以显示所有当前成员信息,并能够推出旧信息或对成员的更改。我们使用的表格如下

会员状态|开始日期|结束日期

会员特权|价格|周期|开始日期|结束日期

会员促销|关联折扣|开始日期|结束日期

成员类型|开始日期|结束日期

个人信息|地址|电话|等


我们希望事实表根据个人Id显示所有这些信息。个人信息需要保持维度表,没有多对多关系,因为这些信息在其他事实表中使用。问题是,我们可能有多个特权或晋升附加到一个成员。让这些数据表成为独立的事实数据表更好吗?或者,将这些信息放到一个表中的最佳方式是什么

这取决于数据量和报告所需的速度等。在许多情况下,创建摘要表或索引视图可以缓解一些性能问题。应该使用规范化规则,但在许多情况下,不要尝试规范化太多,因为太多的表会导致创建查询所需的大量联接,并可能使开发更困难,性能更差。感谢Kevin,这是一个巨大的数据量,唯一的静态表是status。我们可以在任何时候添加更多促销或特权。我们试图坚持传统的星型模式,但这不是一个好主意。