我正在尝试对分层的维度进行建模,并且在每个级别上具有不确定数量的特征。下面是一个关于如何在数据源中构建表的示例
+-------------+ +-------------+ +-------------+
|Product +--------------+SubCategory +----------------+Category |
+------+------+ +------+------+ +-------+-----+
| | |
| | |
+------+----------+ +-------+-------------+ +-------+----------+
|Product Features | |SubCategory Features | |Category Features |
+-----------------+ +---------------------+ +------------------+
Product -> SubCategory 和 SubCategory -> Category 之间存在一对多关系。每个 Product/SubCategory/Category 还引用了它们各自的功能表。然而,特征的数量不是固定的,可能是 0。
我正在尝试构建的事实表需要处于产品级别,并且没有这些功能,我可以将这些中的每一个作为列创建一个维度,如下所示:
+-----------------+
|Dim_Product |
+-----------------+
|Dim_Product_Id |
|Product |
|SubCategory |
|Category |
|... |
+-----------------+
但随后所有功能都会丢失。
是否可以将维度保留在产品级别并保留每个层次结构中的所有功能?或者是否有必要制作一个包含层次结构中所有特征的所有组合的桥接表?我是否需要将级别分解为它们自己的维度(即 Dim_Product、Dim_SubCategory、Dim_Category)?每个层次结构级别也有固定的属性,所以如果单个维度是合适的选项,是否可以将这些属性展平并作为列包含在内?