CMDBuild Forum

Creating domains referencing more than two tables

Hi all,

Let's say I have three classes:

  1. Service
  2. Client
  3. Configuration Item

I want to represent a relationship of a Service that is provided to a Client using a specific Configuration Item. This must be done like this because a Configuration Item might be shared between several clients and different Services are provided to different Clients using the same Configuration Items.

A possible implementation using a standard Database I'd create an association table to reference the Id of the service, Id of the client and Id of the Configuration item, as well as all attributes that are specific to this 3-party relationship.

With CMDB Build I see that domains are only usable between two classes.

What is the best practice to formalize this relationship with CMDB Build?

Best Regards

Alexandre Juma

I do not know your data model.

One way to get a "three-class" relationship is to create a new class with three reference attributes that point to the three classes to be connected.
CMDBuild Team
Hi,
 
Thanks for the response.
 
After reading the administrator manual I'm still not able to use this feature:
 
“Reference” attributes “Reference” attributes allow you to link the attribute to a card of another class via a 1:N domain (where the "N" side is the current class) In the Management Module it will be possible to select values from the list of available references (which contains the attribute “Description”). A reference attribute, in the Management Module, creates or modifies the relation between two cards. Therefore, when defining a "Reference" attribute, you're asked to choose the "domain" you want to apply.
 
Let's say I have the three classes:
  • Service
  • Client
  • Configuration Item
1) I create a fourth class (SvcForClientUsingConfigurationItem) which will hold the three reference attributes.
2) I create a (Service) 1:N (SvcForClientUsingConfigurationItem) Domain
3) I create a (Client) 1:N (SvcForClientUsingConfigurationItem) Domain
4) I create a (Configuration Item) 1:N (SvcForClientUsingConfigurationItem) Domain
5) In the class SvcForClientUsingConfigurationItem when trying to create a REFERENCE attribute, the choose domain drop down is empty (none of the three domains are shown)
 
Am I doing something wrong?
 
Best regards
 
Previously Tecnoteca wrote:
I do not know your data model.
One way to get a "three-class" relationship is to create a new class with three reference attributes that point to the three classes to be connected.
CMDBuild Team

 

In the drop down lists of a card the Description attribute of the cards available in the linked classes is shown.

Can it be that you have not filled the Description attributes ?
CMDBuild Team

 

 

Thanks for the input. I got it working with the Description detail.
 
I thought only during card creation I'd need cards in the other Classes with Description filled. Not during class creation :)
 
Previously Tecnoteca wrote:
In the drop down lists of a card the Description attribute of the cards available in the linked classes is shown.
Can it be that you have not filled the Description attributes ?
CMDBuild Team