Introduzione

Completato

Quando i dati sono modellati in Microsoft Dataverse, vengono usate tabelle separate per rappresentare oggetti e concetti distinti. Le organizzazioni possono usare più tabelle per proteggere informazioni specifiche, evitare la ripetizione dei dati, descrivere altre proprietà o semplificare la creazione di report. Poiché gli oggetti della vita reale sono in relazione tra loro, le relazioni vengono usate in Dataverse per collegare le righe da una tabella all'altra. Inoltre, le relazioni possono fornire vincoli e comportamenti che si applicano quando vengono eseguite azioni sui record.

Fondamentalmente, le tabelle e le relazioni di Dataverse possono operare in modo sinergico per raccontare la storia dei dati. Quando si crea una buona esperienza utente in un'app canvas da Microsoft Power Apps usando le tabelle e le relazioni, è buona norma nascondere le complessità non necessarie del modello di dati. Per svolgere tale attività, l'utilizzo di formule e dati deve supportare uno spostamento efficiente all'interno delle tabelle usando le relazioni. Questo modulo esaminerà come usare i diversi tipi di relazioni offerti da Dataverse.

Scenario: aree di lavoro condivise di Contoso

Questo modulo userà uno scenario aziendale comune per dimostrare come funzionano le relazioni di Dataverse con le app canvas. Contoso, come molte società, dispone di più sedi e consente ai dipendenti di lavorare da casa. Occasionalmente, questi dipendenti devono andare in ufficio e avranno quindi bisogno di una scrivania da usare durante la loro visita. In precedenza, Contoso chiedeva ai dipendenti di cercarsi una scrivania disponibile in ufficio. La società ha però scoperto che questo tipo di sistema di spazio di lavoro condiviso, a volte indicato come hot desking, ha creato dei problemi per il supporto IT e le licenze. Di conseguenza, la società prevede di creare una soluzione usabile dai dipendenti che consentirà loro di visualizzare le scrivanie disponibili e di prenotarne una in anticipo. Il team che sta creando la soluzione ha identificato le seguenti tabelle come parte del loro modello di dati Dataverse.

Nome tabella Descrizione
Ubicazione Questa tabella rappresenterà i singoli edifici e conterrà colonne come l'indirizzo e il numero di telefono. Ogni ubicazione avrà un contatto principale.
Scrivania Questa tabella rappresenta la scrivania effettiva che una persona può prenotare. Le scrivanie si trovano in un'ubicazione specifica.
Caratteristiche scrivania Scrivanie diverse hanno caratteristiche diverse. Ad esempio, alcune scrivanie potrebbero avere un vivavoce e alcune potrebbero trovarsi all'interno di una stanza. Verrà incluso un elenco standard di caratteristiche della scrivania e ciascuna scrivania può avere una o più di queste caratteristiche.
Utente Gli utenti rappresentano le persone che possono prenotare la scrivania o essere un contatto principale per un'ubicazione.
Prenotazione Questa tabella rappresenta la prenotazione per una persona per l'uso di una scrivania specifica in un'ubicazione specifica in una fascia oraria specifica.

Tipi di relazione Dataverse

Quando si crea una relazione tra tabelle, il tipo di relazione definisce i vincoli di cardinalità di ciascun lato della relazione. Dataverse supporta relazioni uno-a-molti e molti-a-molti.

Relazioni uno-a-molti

La relazione uno-a-molti (chiamata anche 1:N o padre-figlio) include una tabella primaria (padre) in cui è possibile associare una singola riga a molte righe della tabella correlata (figlio) usando una colonna di ricerca nella tabella correlata (figlio). La riga primaria è definita riga padre e le righe della tabella correlata sono chiamate righe figlio. È possibile associare una riga figlio a una sola riga padre.

Una relazione uno-a-molti viene anche definita relazione molti-a-uno (o N:1), in cui si userà la relazione a partire dal figlio che punta al padre. È la stessa definizione di relazione fisica ma da un'angolazione diversa. In un'app canvas, se si sta lavorando con il record figlio e si desidera visualizzare una proprietà dal padre, si userà la proprietà di navigazione della relazione molti-a-uno nella riga figlio.

Per impostazione predefinita, viene usata una singola tabella come primaria e la colonna di ricerca punta sempre a una riga di quella tabella. Dataverse supporta anche le ricerche multi-tabella (occasionalmente indicate come ricerche polimorfiche), che consentono a un campo di ricerca di puntare a una riga di una delle tabelle multiple, fornendo flessibilità per modelli di dati più complessi. Ad esempio, è possibile impostare una colonna di ricerca su più tabelle creando una colonna di tipo di dati Cliente. Quindi, è possibile impostare il valore di ricerca del cliente in modo che punti a un contatto o a una riga della tabella degli account. In tutte le tabelle delle attività (ad esempio, e-mail, attività e così via), la colonna corrispondente può puntare a qualsiasi tabella abilitata per il rilevamento delle attività. Inoltre, è possibile usare il tipo di colonna Ricerca su più tabelle per impostare una colonna di ricerca su più tabelle personalizzata. Quando si lavora con queste colonne di ricerca su più tabelle in Power Apps, si useranno le funzioni IsType e AsType di Microsoft Power Fx per determinare la tabella padre e per usare i dati.

Nel modello di dati di esempio del modulo, sono state definite le seguenti relazioni uno-a-molti per supportare lo scenario.

Tabella primaria Tabella correlata Descrizione
Ubicazione Scrivania Ogni scrivania si trova in un'ubicazione.
Utente Ubicazione Ogni ubicazione ha un contatto principale.
Utente Prenotazione Utente a cui è riservata la scrivania.
Scrivania Prenotazione Ogni prenotazione è per una scrivania specifica.

Quando si imposta una relazione uno-a-molti, è anche possibile impostare i comportamenti di relazione. I comportamenti determinano cosa dovrebbe accadere quando la riga della tabella primaria viene eliminata, assegnata, condivisa, non condivisa o riassegnata a un padre diverso. Il comportamento predefinito è il riferimento, che è impostato per rimuovere il collegamento tra le due tabelle quando viene eliminata la riga della tabella primaria. Ad esempio, la tabella Ubicazione ha più scrivanie e usa la configurazione predefinita, quindi se l'app canvas elimina una riga dell'ubicazione, per impostazione predefinita tutte le scrivanie associate risulteranno orfane. Se il requisito aziendale è rimuovere i record di scrivania associati quando viene eliminata un'ubicazione, è possibile selezionare la funzione ForAll, che eliminerà prima tutti i record della scrivania associati. Un'opzione migliore prevede l'impostazione del tipo di comportamento del padre per la relazione. Questo tipo di comportamento elimina automaticamente i record associati quando viene eliminato il record primario. Questo approccio garantisce che vi saranno record di scrivania orfani.

Quando si crea un'app canvas e si usano tabelle correlate, sapere come sono impostati i comportamenti per quella relazione permetterà di implementare la logica corretta.

Relazioni molti-a-molti

La relazione molti-a-molti (chiamata anche N:N) include una tabella nascosta speciale chiamata tabella delle relazioni, a volte indicata come tabella delle intersezioni. Questa tabella mapperà il modo in cui più righe di una tabella possono essere correlate a più righe di un'altra tabella. Le relazioni molti-a-molti possono tenere traccia dell'associazione, ma non è possibile modificare la tabella delle intersezioni per aggiungere colonne personalizzate che descrivono la relazione.

Nell'esempio di questo modulo, Scrivania e Caratteristica scrivania hanno una relazione uno-a-molti. L'elenco delle caratteristiche della scrivania è condiviso da tutte le scrivanie e a ciascuna scrivania possono essere associate una o più caratteristiche. Le relazioni molti-a-molti consentono agli utenti di sapere che la scrivania ha delle sedie, ma non permetteranno di memorizzare quante sedie aveva ciascuna scrivania.

Il video seguente mostra come creare relazioni tra tabelle.

Dopo aver creato tutte le tabelle e le relazioni, il modello di dati per lo scenario di esempio dovrebbe essere simile al diagramma seguente.

Diagramma di un modello di dati di esempio che mostra le relazioni tra le tabelle.

Il resto di questo modulo prende in esame come lavorare con questo modello di dati da un'app canvas.