Riferimenti tabella

Numerose tabelle includono campi, noti anche come elementi dati, che provengono da altre tabelle. Questi campi sono definiti dati di riferimento.

Ad esempio, nella tabella Componenti software implementati (tccom000) sono presenti riferimenti alle seguenti tabelle:

  • Indirizzi (tccom130)
  • Paesi (tcmcs010)
  • Lingue (tcmcs046)

In questo caso, gli indirizzi e i paesi presentano, a loro volta, riferimenti ad altre tabelle.

Ogni riferimento di tabella presenta le due caratteristiche seguenti:

  • Modalità di riferimento: descrive la relazione tra la tabella e la tabella di riferimento. Sono incluse le seguenti opzioni:
    • Obbligatorio: il campo della tabella deve contenere un valore presente nella tabella di riferimento. Ad esempio, il riferimento da Indirizzi a Paesi è obbligatorio. È pertanto necessario che per ogni indirizzo sia specificato un paese, altrimenti l'indirizzo non può essere salvato.

      Per la condivisione di tabelle, questo implica che, se la tabella degli indirizzi è condivisa, anche quella dei paesi deve essere condivisa.

    • Obbligatorio se non è vuoto: il campo della tabella può essere vuoto. Se il campo della tabella è specificato, il valore del campo deve essere presente nella tabella di riferimento. Ad esempio, il riferimento da Componenti software implementati a Indirizzi è obbligatorio se non è vuoto. Di conseguenza, l'indirizzo della tabella Componenti software implementati è facoltativo.

      Per la condivisione delle tabelle, questo implica che, se la tabella Componenti software implementati è condivisa, è possibile condividere l'indirizzo. Se tuttavia la tabella degli indirizzi non è condivisa, è necessario lasciare vuoto il campo relativo all'indirizzo nella tabella Componenti software implementati. Si noti che la decisione di non condividere la tabella degli indirizzi non può essere presa soltanto in base ai riferimenti di tabella. Spesso un campo deve essere specificato perché è necessario a una funzionalità.

    • Non obbligatorio: il campo della tabella può contenere un valore presente nella tabella di riferimento, ma può contenere anche un altro valore.

      Se la modalità di riferimento non è obbligatoria, non è necessario condividere la tabella di riferimento se la tabella padre è condivisa.

  • Tipo di riferimento:
    • Riferimento definitivo: un riferimento da una tabella a un'altra definito nel dizionario dati.
    • Riferimento provvisorio: un riferimento da una tabella a un'altra incorporato in uno script o in una libreria di programma.

Se i dati vengono condivisi, è possibile che debbano essere condivisi anche tutti i dati di riferimento. Questo può dipendere dal fatto che i dati sono obbligatori, obbligatori se non vuoti o non obbligatori. Le tabelle di riferimento sono importanti per l'integrità referenziale dei dati.

Poiché le tabelle sono collegate in modo logico, è necessario collegare anche la tabella di riferimento, soprattutto nel caso di dati obbligatori. Se i dati non sono obbligatori, i campi possono avere valori diversi in società diverse, purché tali valori siano presenti nella società che vi fa riferimento. È pertanto possibile condividere la tabella principale utilizzando transazioni distribuite. La tabella di riferimento può essere specifica della società oppure può essere replicata.

Esempio. I dati generali degli articoli (tcibd001) sono condivisi da più società. Nel file degli articoli sono presenti molti campi di riferimento, ad esempio i gruppi di articoli e i dati delle unità.

Se il file degli articoli è collegato in modo logico, è necessario che in entrambe le società siano presenti esattamente gli stessi valori per tutti i campi di riferimento obbligatori, ad esempio i gruppi di articoli e così via. Anche queste tabelle di riferimento sono in genere collegate in modo logico. Se non vengono utilizzati campi non obbligatori, ovvero il tipo di prodotto, le tabelle di riferimento non devono essere collegate in modo logico.

Se una tabella viene replicata, i campi di riferimento possono avere diversi valori, purché questi valori siano presenti nella società che vi fa riferimento. Di conseguenza, durante la replica, i valori cambiano. In caso di campi non obbligatori, non è necessario avere dati di riferimento condivisi se i campi della tabella non vengono utilizzati.

Esempio. Se il file di Dati generali articoli (tcibd001) viene replicato, i programmi devono poter fare riferimento a tutti i campi obbligatori, ovvero i gruppi di articoli, della società che utilizza tali dati. Non è necessario che il valore dei campi obbligatori sia identico in entrambe le società, purché il valore a cui viene fatto riferimento sia presente nella società che vi fa riferimento. Se non vengono utilizzati campi non obbligatori, ovvero i tipi di prodotto, non è necessario replicare le tabelle di riferimento.

In alcuni casi, esistono numerosi livelli di riferimento. I riferimenti possono essere di ampia portata e complessi. Ad esempio, il file degli articoli fa riferimento a tabelle che contengono gruppi di articoli e ad altre tabelle MCS, nonché a dati di progettazione, distinte base, cicli di operazioni e dati di contabilità dei costi. Per questi motivi, e considerato che le tabelle possono essere condivise in diversi modi a seconda dell'implementazione, i riferimenti di tabella devono essere esaminati in dettaglio per ciascuna implementazione.