CMDBuild Forum

Re: Import e relazioni

Salve, vi espongo il mio problema:

ho due classi e un dominio N:N tra queste due classi. Poichè i dati sono in numero molto elevato vengono caricati importando un file CSV. Ora però come faccio a relazionare gli oggetti di una classe con quelli dell'altra senza dover fare a mano n-mila relazioni una ad una?

Grazie a tutti per il supporto.

Previously Carlo wrote:

ho due classi e un dominio N:N tra queste due classi. Poichè i dati sono in numero molto elevato vengono caricati importando un file CSV. Ora però come faccio a relazionare gli oggetti di una classe con quelli dell'altra senza dover fare a mano n-mila relazioni una ad una?

L'import CSV è stato creato per l'importazione di singole tabelle, quindi è molto semplice e non gestisce la creazione di relazioni (ad eccezione di quelle introdotte dalla definizione dei campi reference). Non è quindi possibile definire relazioni N:N e non è prevista l'introduzione di questa feature in futuro.

Attualmente ci sono due modi di inserire relazioni N:N:

  1. Tramite il componente "External Connector"
  2. Tramite INSERT SQL direttamente nella tabella delle relazioni ("Map_NomeDominio").

 

Per la seconda opzione, ad esempio avendo una classe D, una superclasse B e una classe C figlia di B, avendo un dominio N:N DB fra D e B, e volendo inserire una relazione fra la card con Id 1 in D e la card con Id 2 in C, il comando di inserimento sarà:

INSERT INTO "Map_DB"(
    "IdDomain", "IdClass1", "IdObj1", "IdClass2", "IdObj2", "Status", "User")
    VALUES ('"Map_DB"'::regclass, '"D"'::regclass, 1, '"C"'::regclass, 2, 'A', 'system');

 

Paolo

 

 

Previously Tecnoteca wrote:

Previously Carlo wrote:

ho due classi e un dominio N:N tra queste due classi. Poichè i dati sono in numero molto elevato vengono caricati importando un file CSV. Ora però come faccio a relazionare gli oggetti di una classe con quelli dell'altra senza dover fare a mano n-mila relazioni una ad una?

L'import CSV è stato creato per l'importazione di singole tabelle, quindi è molto semplice e non gestisce la creazione di relazioni (ad eccezione di quelle introdotte dalla definizione dei campi reference). Non è quindi possibile definire relazioni N:N e non è prevista l'introduzione di questa feature in futuro.

Attualmente ci sono due modi di inserire relazioni N:N:

  1. Tramite il componente "External Connector"
  2. Tramite INSERT SQL direttamente nella tabella delle relazioni ("Map_NomeDominio").

 

Per la seconda opzione, ad esempio avendo una classe D, una superclasse B e una classe C figlia di B, avendo un dominio N:N DB fra D e B, e volendo inserire una relazione fra la card con Id 1 in D e la card con Id 2 in C, il comando di inserimento sarà:

INSERT INTO "Map_DB"(
    "IdDomain", "IdClass1", "IdObj1", "IdClass2", "IdObj2", "Status", "User")
    VALUES ('"Map_DB"'::regclass, '"D"'::regclass, 1, '"C"'::regclass, 2, 'A', 'system');

 

Paolo

 

 

Ok, farò così grazie mille!