Commande DEFINE RELATION

Information de concept

Associer des tables

Définit une relation entre deux tables Analytics.

Remarque

Vous pouvez associer jusqu'à 18 tables Analytics, accéder aux données de toute combinaison de champs dans les tables associées et les analyser comme si elles existaient dans une seule et même table. Vous devez indiquer une commande DEFINE RELATION distincte pour chaque paire de tables associées.

Syntaxe

DEFINE RELATION champ_clé WITH nom_table_associée INDEX nom_index <AS nom_relation>

Paramètres

Nom Description
champ_clé

Champ clé de la table parent.

Vous ne pouvez sélectionner qu'un seul champ clé par relation.

Remarque

Lors de la création de relations entre les tables parents et les tables petits-enfants, vous devez indiquer nom de champ clé complet au format nom_table.nom_champ.

Dans Associer trois tables, consultez la section : Justificatifs.créés_par

WITH nom_table_associée

Nom de la table associée.

INDEX nom_index

Nom de l'index du champ clé de la table associée.

Vous devez indexer la table associée sur le champ clé avant d'associer la table.

AS nom_relation

optionnel

Nom unique pour la relation.

Par défaut, le nom de la table enfant est utilisé comme nom de relation. Si vous définissez des relations supplémentaires avec la même table enfant, vous devez spécifier un nom unique.

Exemples

Associer deux tables

Dans l'exemple suivant, la table ouverte est associée à la table Client en utilisant le champ de numéro client (CustNum) en tant que champ clé :

DEFINE RELATION CustNum WITH Client INDEX Client_sur_CustNum

Client_sur_CustNum est le nom de l'index de table enfant sur le champ clé. Un index de table enfant est requis lorsque vous associez des tables.

Si l'index de table enfant n'existe pas déjà lorsque vous exécutez la commande DEFINE RELATION, un message d'erreur apparaît et la relation n'est pas effectuée.

Astuce

Si vous définissez une relation dans l'interface utilisateur Analytics, l'index de table enfant est créé automatiquement pour vous.

Créer un index de table enfant avant d'associer deux tables

Si besoin, vous pouvez créer un index de table enfant juste avant d'associer deux tables. L'exemple ci-dessous montre la création d'un index sur la table enfant Client avant d'associer la table Ar à la table Client.

OPEN Client
INDEX ON CustNum TO Client_sur_CustNum
Ouvrir Ar
DEFINE RELATION CustNum WITH Client INDEX Client_sur_CustNum

Associer trois tables

Dans l'exemple suivant, trois tables sont associées dans l'exemple de projet ACL_Rockwood.ACL :

  • éléments_justificatifs table parent
  • Justificatifs table enfant
  • Employés table petit-enfant

En utilisant la table Justificatifs comme table intermédiaire dans la relation, vous pouvez associer chaque élément justificatif à l'employé l'ayant traité.

OPEN Justificatifs
INDEX ON numéro_justificatif TO "Justificatifs_par_numéro_justificatif"
OPEN éléments_justificatifs
DEFINE RELATION numéro_justificatif WITH Justificatifs INDEX Justificatifs_par_numéro_justificatif
OPEN Employés
INDEX ON numéro_employé TO "Employés_par_numéro_employé"
OPEN éléments_justificatifs
DEFINE RELATION Justificatifs.créés_par WITH Employés INDEX Employés_par_numéro_employé

Explication de la logique de la syntaxe

  1. Ouvrez la table Justificatifs et indexez-la sur le champ numéro_justificatif.
  2. Ouvrez la table éléments_preuves et associez-la à la table Justificatifs à l'aide du champ clé numéro_justificatif.
  3. Ouvrez la table Employés et indexez-la sur le champ numéro_employé.
  4. Ouvrez la table éléments_justificatifs et associez-la à la table Employés à l'aide du champ clé Justificatifs.créés_par.

    Remarque

    Justificatifs.créés_par est disponible comme champ clé dans la deuxième relation car vous avez déjà associé éléments_preuves et Justificatifs dans la première relation.

Remarques

Pour plus d'informations sur le fonctionnement de cette commande, consultez Association de tables.