Correlazione tra una o più tabelle - Introduzione

Completato

Per rendere efficienti e scalabili le soluzioni create, è necessario suddividere i dati in diversi contenitori (tabelle). Cercare di archiviare tutto in un unico contenitore è un approccio poco efficiente, difficile da usare e da comprendere.

Il seguente esempio aiuta a illustrare questo concetto.

Si supponga di dover creare un sistema per gestire gli ordini cliente. È necessario un elenco master degli articoli in vendita, oltre all'inventario disponibile, al costo dell'articolo e al prezzo di vendita. È necessario anche un elenco master dei clienti, con gli indirizzi e le valutazioni del credito. Infine, per gestire le fatture di vendita è necessaria una soluzione per archiviare i dati delle fatture. La fattura deve includere le informazioni della fattura (come la data, il numero di fattura e il venditore), le informazioni sul cliente, inclusi l'indirizzo e la valutazione del credito, e una voce per ogni voce della fattura. Le voci devono includere un riferimento all'articolo venduto, devono fornire il costo e il prezzo corretti per ogni articolo e devono scalare la quantità venduta dell'articolo dalla quantità disponibile.

Cercare di creare una singola tabella per supportare la funzionalità qui descritta sarebbe un approccio sconsiderato e inefficiente. Il modo corretto per affrontare questo scenario aziendale è creare queste quattro tabelle:

  • Clienti
  • Prodotti
  • Fatture
  • Voci

Per ottenere una soluzione efficiente, scalabile e con prestazioni elevate, è consigliabile creare una tabella per ciascuno di questi elementi e metterle in relazione tra loro. La suddivisione dei dati in più tabelle significa anche che non sarà necessario archiviare dati ripetitivi o supportare righe enormi con grandi quantità di dati vuoti. Questo concetto è noto come normalizzazione dei dati. Inoltre, la creazione dei report sarà più semplice se si suddividono i dati in tabelle separate.

Le tabelle correlate hanno una connessione relazionale. La tecnologia su cui si fonda Microsoft Dataverse è un database relazionale gestito nel cloud da Microsoft. Le relazioni tra le tabelle possono assumere molte forme, ma le due più comuni sono uno-a-molti e molti-a-molti, entrambe supportate da Dataverse.

Le relazioni uno-a-molti sono note anche come relazioni padre-figlio. Nell'esempio di fattura precedente, la tabella fattura corrisponde alla tabella padre, mentre le voci alla tabella figlio. Una fattura può avere zero, una o più voci (righe figlio), ma la voce sarà sempre correlata a una sola fattura (riga padre). In genere, le righe figlio non esistono senza una riga padre.

Per identificare la riga padre, viene usata una colonna che consente solo valori univoci. Questa colonna univoca è chiamata chiave. Lo stesso valore (la chiave padre) viene archiviato nelle righe figlio correlate. Questa colonna è chiamata chiave esterna quando la riga figlio viene usata per archiviare il valore della chiave padre. Il filtro viene usato efficacemente per visualizzare le righe figlio con un valore nella chiave esterna che corrisponde al valore della chiave nella riga padre. Ciò consente alle applicazioni di visualizzare le righe figlio (le voci dell'esempio precedente) che appartengono a una particolare riga padre (la fattura dell'esempio precedente). Questo concetto è alla base di molte applicazioni software aziendali.

Suggerimento

La suddivisione dei dati in tabelle diverse consente di progettare una soluzione efficiente e scalabile, eppure potrebbe risultare un processo complesso. Dataverse contiene molte delle tabelle necessarie alla maggior parte delle organizzazioni. Con l'uso e l'estensione delle tabelle standard sarà possibile creare soluzioni basate su un modo comprovato e scalabile di archiviare i dati usati dalle soluzioni.