CMDBuild Forum

Relazioni N:N

Buongiorno, ho da poco installato CMDBuild e lo trovo molto interessante e ben fatto.

Non riesco però a trovare documentazione su come implementare una relazione N:N

Se ne creo una non mi compare tra le opzioni nel tipo REFERENCE all'interno delle classi nè di origine nè di destinazione.

Ciò che sto cercando di fare è creare una classe "contatti" e una "aziende" dove un contatto potrebbe appartenere a più aziende e, ovviamente, ogni azienda possa avere più contatti.

Grazie in anticipo,

Elio

Gli attributi Reference sono descritti a pagina 20 dell'administrator manual, di cui riporto un estratto:

Gli attributi di tipo “Reference” consentono di agganciare l'attributo ai valori presenti in una classe
collegata tramite un apposito dominio 1:N (dove il lato “N” è quello della classe corrente).

Ciò che forse non era chiaro è che possono appoggiarsi solamente a domini 1:N e N:1, nella parte N.

Questo tipo di attributo infatti deve essere pensato come una "chiave esterna" verso la classe al lato 1 del dominio. Rispetto ad una chiave esterna, il valore dei reference viene in aggiunta mantenuto consistente con le relazioni sul dominio:

  • La creazione di una relazione su quel dominio inserisce il valore del reference
  • La modifica di una relazione su quel dominio modifica il valore del reference
  • La cancellazione di una relazione su quel dominio rimuove (null) il valore del reference
  • L'inserimento del valore del reference crea la relazione sul dominio
  • La modifica del valore del reference modifica la relazione sul dominio
  • La cancellazione del valore del reference cancella la relazione sul dominio

Va infine tenuto conto che non è possibile creare attributi reference diversi sullo stesso dominio, quindi va creato un dominio diverso per ogni attributo reference (a parte ovviamente quelli ereditati dalle sottoclassi).

 

Paolo

 

Grazie per la cortese risposta. Non mi è ancora chiaro come posso usare un dominio N:N una volta creato.

Una volta che ho creato la classe Azienda e la classe Contatto e le istanze Azienda1, Azienda2, ..., AziendaN e Contatto1, Contatto2, ContattoN

Ho creato il Dominio ContattoAzienda N:N in modo che un Azienda abbia più contatti e un contatto appartenga a più aziende.

Come lego, ad esempio, ContattoN ad AziendaN e ad AziendaM? E AziendaO a ContattoP e ContattoQ?

Ringrazio nuovamente in anticipo

 

 

Previously Tecnoteca wrote:

Gli attributi Reference sono descritti a pagina 20 dell'administrator manual, di cui riporto un estratto:

Gli attributi di tipo “Reference” consentono di agganciare l'attributo ai valori presenti in una classe
collegata tramite un apposito dominio 1:N (dove il lato “N” è quello della classe corrente).

Ciò che forse non era chiaro è che possono appoggiarsi solamente a domini 1:N e N:1, nella parte N.

Questo tipo di attributo infatti deve essere pensato come una "chiave esterna" verso la classe al lato 1 del dominio. Rispetto ad una chiave esterna, il valore dei reference viene in aggiunta mantenuto consistente con le relazioni sul dominio:

  • La creazione di una relazione su quel dominio inserisce il valore del reference
  • La modifica di una relazione su quel dominio modifica il valore del reference
  • La cancellazione di una relazione su quel dominio rimuove (null) il valore del reference
  • L'inserimento del valore del reference crea la relazione sul dominio
  • La modifica del valore del reference modifica la relazione sul dominio
  • La cancellazione del valore del reference cancella la relazione sul dominio

Va infine tenuto conto che non è possibile creare attributi reference diversi sullo stesso dominio, quindi va creato un dominio diverso per ogni attributo reference (a parte ovviamente quelli ereditati dalle sottoclassi).

 

Paolo