Références de table

De nombreuses tables comprennent des champs, également appelés éléments de données, provenant d'autres tables. Ces champs sont appelés données référencées.

La table Composants logiciels implémentés (tccom000) fait référence, par exemple, aux tables suivantes :

  • Adresses (tccom130)
  • Pays (tcmcs010)
  • Langues (tcmcs046)

Dans ce cas, les adresses et les pays ont elles-mêmes des références à d'autres tables.

Chaque référence de table présente les deux caractéristiques suivantes :

  • Mode de référence : Décrit la relation entre la table et la table référencée. Les options sont les suivantes :
    • Obligatoire : Le champ de table doit contenir une valeur qui est présente dans la table de référence. Par exemple, la référence des adresses aux pays est obligatoire. De ce fait, chaque adresse doit avoir un pays. Dans le cas contraire, l'adresse ne peut pas être enregistrée.

      Pour le partage de tables, cela implique que si la table d'adresses est partagée, la table des pays doit également être partagée.

    • Obligatoire sauf si non défini : Le champ de table peut rester vide. Si le champ de table est renseigné, sa valeur doit être présente dans la table de référence. Par exemple, la référence des composants logiciels implémentés aux adresses est obligatoire sauf si non mentionnée. De ce fait, l'adresse de la table des composants logiciels implémentés est facultative.

      Pour le partage de tables, cela implique que si la table des composants logiciels implémentés est partagée, vous pouvez partager l'adresse. Cependant, si la table d'adresses n'est pas partagée, vous devez laisser l'adresse vide dans la table des composants logiciels implémentés. Notez que la décision de ne pas partager la table des adresses ne peut pas reposer uniquement sur les références de la table. Souvent, une fonctionnalité existante nécessite de renseigner un champ.

    • Facultatif : Le champ de table peut contenir une valeur présente dans la table de référence, mais le champ de table peut également contenir une autre valeur.

      Si le mode de référence est Facultatif, il n'est pas nécessaire de partager la table référencée si la table parent est partagée.

  • Type de référence :
    • Référence ferme : Référence d'une table à une autre définie dans le dictionnaire de données.
    • Référence non confirmée : Référence d'une table à une autre qui est incluse dans un script ou une bibliothèque de programmes.

Si des données sont partagées, toutes les données référencées doivent également être partagées. Cela peut dépendre du fait que les données sont obligatoires, obligatoires sauf si non définies ou non obligatoires. Les tables référencées sont importantes pour l'intégrité des références des données.

Lorsque les tables sont liées par des relations logiques, les tables référencées doivent l’être également, en particulier dans le cas de données obligatoires. Dans le cas de données non obligatoires, les champs peuvent avoir des valeurs différentes dans différentes sociétés, tant que ces valeurs existent dans la société qui les référence. De ce fait, la table principale peut être partagée à l'aide d'écritures réparties. La table référencée peut être spécifique à une société ou être répliquée.

Exemple : La table Données générales Article (tcibd001) est partagée par plusieurs sociétés. De nombreux champs référencés existent dans le fichier d'articles, tels que les groupes d'articles et les données d'unité.

Si le fichier d'articles est lié de façon logique, exactement les mêmes valeurs de tous les champs référencés obligatoires doivent exister dans les deux sociétés, telles que les groupes d'articles, etc. Ces tables référencées sont généralement liées de façon logique elles aussi. Si des champs non obligatoires ne sont pas utilisés, c’est-à-dire le type de produit, les tables référencées ne doivent pas faire l’objet d’un lien logique.

Si une table est répliquée, les champs référencés peuvent avoir diverses valeurs, tant que ces valeurs existent dans la société qui les référence. Aussi, lors de la réplication, les valeurs changent. Dans le cas de champs non obligatoires, il n'est pas nécessaire que les données référencées soient partagées si le champ de la table n'est pas utilisé.

Exemple : Si le fichier Données générales Article (tcibd001) est répliqué, les programmes doivent être en mesure de référencer tous les champs obligatoires, autrement dit, les groupes d'articles, de la société qui utilise ces données. Il n'est pas nécessaire que la valeur des champs obligatoires soit la même dans les deux sociétés, tant que la valeur référencée existe dans la société qui la référence. Si les champs facultatifs ne sont pas utilisés, en d'autres termes, les types de produits, il n'est pas nécessaire de répliquer les tables référencées.

Dans certains cas, de nombreux niveaux de références existent. Les références peuvent être avancées et complexes. Par exemple, les tables de références d'articles telles que les groupes d'articles et autres tables MCS, ainsi que les données d'étude, les nomenclatures, les gammes et les données de comptabilité analytique. Pour ces raisons, et parce que les tables peuvent être partagées de différentes manières dans chaque implémentation, les références de la table doivent être étudiées en détail pour chaque implémentation.