I'm currently building our Data Warehouse, primarily using Ralph Kimball's methods and guidance.
We are using the Microsoft stack for this (so SSIS, SSAS).
I am a bit stuck deciding how to handle BOMS (Bill of Materials) which is effectively an unbalanced hierarchy.
The BOM handles assemblies which are a collection of parts. Each part can have it's own child parts and each part can also appear more than once in different assemblies.
I'm trying to use a DimBOM table as follows...
Now in SSAS I can join the table to itself (ChildItemNumber to ItemNumber) and create a dimension. The dimension will pick up the relationship and create a parent-child link.
The problem is, The ItemNumber in this case is not necessarily unique (because a child item can be a parent itself). If I try to process the dimension SSAS warns about a non unique attribute key.
Is there a way of handling this, short of reverting to an exploded hierarchy e.g.