Entities:
- Capability Responsibility
- Implementation
- Components
- Component Responsibilities
At the root level I have a Capability Responsibility (CR). This gets fulfilled by groups called components. The implementation can be made up of something like one component from a specific group of components. Call it group A and another component from another group called B.
implementation = (one of the components from group A) + (one of the components from group B).
Another example:
implementation 2 = (0 or many of components from group A) + (one or more component from group B).
An implementation is a group of components picked from some sets of components grouped in a logical way. These components have to fulfill other component responsibilities that get fulfilled by other component groups or implementation. I need to build a tree with root node being a CR and leaf nodes being components that don't have any other responsibilities. In between is this grouping of components that is tripping me up. Once you reach these leaf nodes you fulfilled all responsibilities.
How to model this in a relational database?