我正在努力弄清楚如何将事务处理数据库中的一对多表结构转换为数据仓库的一对一维。
在交易数据库中,数据结构为:
根记录(父母ID)
查找表“许多父ID”(专利ID,子ID)
参考表(孩子ID,姓名)
加入我的参考表会带回一个看起来像这样的数据集:
╔═════════════╦═══════════╦══════════╦════════════╗
║ Root_ID ║ Root_Code ║ Child_ID ║ Child_Name ║
╠═════════════╬═══════════╬══════════╬════════════╣
║ 1 ║ 1000 ║ 22 ║ Name 1 ║
║ 1 ║ 1000 ║ 23 ║ Name 2 ║
║ 1 ║ 1000 ║ 24 ║ Name 3 ║
║ 1 ║ 1000 ║ 25 ║ Name 4 ║
║ 2 ║ 1150 ║ 67 ║ Name 5 ║
║ 2 ║ 1150 ║ 68 ║ Name 6 ║
║ 2 ║ 1150 ║ 69 ║ Name 7 ║
║ 3 ║ 2019 ║ 11 ║ Name 8 ║
║ 3 ║ 2019 ║ 12 ║ Name 9 ║
║ 5 ║ 2010 ║ 91 ║ Name 10 ║
║ 5 ║ 2010 ║ 92 ║ Name 11 ║
║ 5 ║ 2010 ║ 93 ║ Name 12 ║
║ 5 ║ 2010 ║ 94 ║ Name 13 ║
║ 5 ║ 2010 ║ 95 ║ Name 14 ║
║ 5 ║ 2010 ║ 96 ║ Name 15 ║
║ 6 ║ 5010 ║ 33 ║ Name 16 ║
╚═════════════╩═══════════╩══════════╩════════════╝
我想知道的是,Root_ID(1)具有Child_ID(22,23,24,25)的值,并且能够使用维上生成的键来引用它。
请记住,我永远无法预测会有多少子记录, 因此,无法在我的维度中创建X左右的列。
我敢肯定,有一个明智的数据仓库专家比我知道通常如何处理它。
为说明所需的结果,
事实记录(Dimension_Root_Key = 1)
维度(键1,名称1,名称2,名称3,名称4)
答案 0 :(得分:1)
结果证明,我应该学习更多一点。我了解了“桥接”表的术语。
知道kimball组在如何实现我想要的目标方面有一些很棒的演示。进一步阅读Bridging tables