It is hard to say in isolation, as there may be other factors to consider in regard to the overall design. And the below is just my two cents, others may have different opinions.
Are you planning on a parent cube (where all these entities consolidate together) with the cost center dimension at a more summary level, e.g. maybe only 100 or so parent cost center groups in the parent cube?
Having a parent cube that is at a summary cost center level which references either:
- 1 base entity cube where constraints have been applied per entity and appropriate cost centers
- 10 base entity cubes where each entity only has its valid cost centers
I think it becomes a preference at that point between 1 and 2 because both options will control the DU size in the base cube and the parent cube will already be at a more summary level. One key benefit with extensibility is controlling DU size and I believe #1 and #2 will help limit DU size as you will not have valid intersections for invalid combinations of entity and cost center.
The bigger question then becomes how do you want to maintain things? If their base entities move around a lot or they frequently add new base entities, then having #1 may be preferred as that is let cube setup. If they do not add new entities often but do add cost centers often, then maybe #2 is better so long as the customer understands how to maintain alternate constraint rollup groups.
Another question is around how do they want to report on cost center? If you use #1 then when drilling to base you will definitely want to have sparse row suppression as true and suppress no data intersections (to avoid seeing all cost centers for all base entities). If you use #2 then when drilling to base on entity you will only see each entity's relevant cost centers without needing suppression. In both cases you will need to use the .Options functionality when drilling to get the correct cost center extended level.
I think you also have to consider other UDs and the account dimension when you consider extending vertically or not, and how. For example, maybe there are other things that would push you to #2 with each base entity having its own base cube.
I think the key is having a parent cube with only summary or parent cost centers, e.g. 100 or so. That will be key to overall DU size control and performance. After that then #1 vs #2 may come down to other factors.
I think all else being equal, meaning if there is no other reason to have 10 separate sub-cubes, one per entity, then I would lean towards 1 base cube with cost center constraints by entity, and 1 parent cube.
Curious to hear others thoughts.