According to the ABAP Keyword Documentation it is desirable to use associations instead of joins when creating ABAP CDS views.
When you have a classical data vault model with Hubs and Satellites this approach is easy:
Just associate all satellites to the hub.
More often I face a situation like this:
The information of a logical entity requires several joins chained into each other, because the logical entity strechtes among several hubs (it is probably wrong to call them hubs now).
As I understand it, ABAP CDS views dont support chained associations. Thus there are two ways to model this using ABAP CDS:
1) Use one View: Join HUB1 and HUB2, then associate all satellites.
2) Use two Views: The first starts with HUB2 and associates Satellite2 and Satellite3. The second starts with HUB1 and associates the previous view as well as Satellite1.
Which one is the better way?
When thinking about link tables, the situation seems more obvious:
Create a consolodated view starting with the Link table and associating the two CDS views to it. Once again it gets more complicated when a chain of several Link tables is required.
Using this approach of nesting CDS views, one easily creates a stack of 5 to 10 CDS views on top of each other. Does this have a negative impact on the evulation of the views compared to just using joins?