Identifiants uniques

Insights in ArcGIS Enterprise
Insights desktop

Chaque ligne dans une table de base de données doit être identifiable sans ambiguïté pour pouvoir être utilisée dans Insights La logique suivante permet de déterminer les colonnes à utiliser pour identifier l’unicité :

  • Recherche d’une clé primaire. Si une clé primaire est trouvée, utilisez les colonnes qui la définissent.
  • Recherche d’un index qui est signalé comme unique. Si un index est trouvé, utilisez les colonnes qui le définissent.
Conseil :

Des résultats inattendus peuvent se produire si un index unique est utilisé et qu’il existe des valeurs nulles dans les colonnes choisies. Il est recommandé de définir une clé primaire pour toutes les tables. S’il n’est pas possible de définir une clé primaire, les colonnes faisant partie d’un index unique doivent être signalées dans la base de données comme not null.

Si les critères ci-dessus ne sont pas remplis, une icône d’avertissement apparaît lorsque la table est sélectionnée pour être ajoutée à un classeur et qu’un identifiant unique doit être appliqué. Un identifiant unique est un champ ou une combinaison de champs qui identifie de manière unique chaque ligne dans vos données. Si un seul champ est utilisé, il doit contenir uniquement des valeurs uniques et ne peut pas contenir de valeurs nulles. Si plusieurs champs sont utilisés, il n’est pas nécessaire que chaque champ contienne uniquement des valeurs uniques, mais la combinaison des lignes doit toujours être unique.

Les identifiants uniques sélectionnés sont enregistrés et les paramètres automatiquement appliqués à chaque nouvel ajout de la table. Pour Insights in ArcGIS Enterprise, les informations sur les identifiants uniques sont enregistrées dans le navigateur jusqu'au redémarrage de ArcGIS Server ou à l'expiration du cache du navigateur. Pour Insights desktop, l'identifiant unique est enregistré pour la durée de la session et expire à la fermeture de Insights desktop.

Il est possible de créer un identifiant unique avec des colonnes de type chaîne ou entier. Les colonnes de type date, flottant et double ne peuvent pas être sélectionnées comme identifiant unique.

Exemples

La table suivante contient les données des ventes d’une chaîne de vente au détail. Elle comprend un numéro de point de vente, l’état dans lequel se trouve le point de vente et le montant total des ventes. Deux des champs, Store number (Numéro de point de vente) et Total sales (Total des ventes), contiennent uniquement des valeurs uniques et aucune valeur nulle. L’autre champ, State (État), ne comporte pas de valeurs uniques. Dans ce cas, le champ Store number (Numéro de point de vente) doit être utilisé comme identifiant unique, puisque chaque point de vente est répertorié une seule fois et que vous savez que le numéro du point de vente est toujours unique pour chaque point de vente.

Store number (Numéro de point de vente)ÉtatTotal sales (Total des ventes)

1001

Colorado

1 583 296,29

1002

Colorado

1 938 495,84

1003

Wyoming

1 439 752,57

1004

Montana

2 583 485,83

1005

Montana

928 573,67

Si un des champs ne satisfait pas les exigences d’un identifiant unique ou si vous n’êtes pas sûr de l’unicité des valeurs du champ, vous pouvez combiner plusieurs champs afin de créer des entrées uniques. La table suivante inclut le nombre d’éléments en stock dans chaque point de vente. À la différence de l’exemple précédent, le champ Store number (Numéro de point de vente) n’est pas unique, car il existe plusieurs éléments en stock par point de vente. Le champ Item ID (ID d’élément) n’est, lui non plus, pas unique. Le champ Quantity (Quantité) est actuellement unique, mais le nombre d’éléments en stock d’un point de vente est susceptible de changer et ne reste donc pas toujours unique, donc ce champ ne doit pas être utilisé comme identifiant. Un meilleur identifiant serait une combinaison des champs Store number (Numéro de point de vente) et Item ID (ID d’élément), car chaque élément est répertorié une seule fois par point de vente.

Store number (Numéro de point de vente)ID d’élémentQuantité

1001

123456

20

1001

234567

5

1001

345678

16

1002

123456

11

1002

234567

0

1002

345678

21

Choisir un identifiant unique

Pour appliquer un identifiant unique à partir de la table de base de données, procédez comme suit :

  1. Cliquez sur l’icône d’avertissement Aucune clé primaire.

    La fenêtre Choose a unique identifier (Choisir un identifiant unique) apparaît. La fenêtre affiche les champs non spatiaux dans la table de base de données qui ne contiennent pas de valeurs nulles, ainsi que le type de champ.

  2. Effectuez l'une des opérations suivantes :
    • Si vous savez quelle colonne ou combinaison de colonnes est la meilleure pour créer un identifiant unique, sélectionnez les champs.
    • Si vous ne savez pas quelle colonne ou combinaison de colonnes est la meilleure pour créer un identifiant unique, cliquez sur le bouton Analyze (Analyser) afin de rechercher dans la table les colonnes qui contiennent toutes des valeurs uniques. Les colonnes contenant des valeurs uniques sont indiquées par l’icône suivante : Valeurs uniques
    • Si la table ne comporte pas de colonne pouvant être utilisée comme identifiant unique ou si vous ne souhaitez pas créer un identifiant unique à partir des champs existants, vous pouvez sélectionner Copy the database table and create a primary key (Copier la table de base de données et créer une clé primaire).
  3. Cliquez sur Apply (Appliquer).

Créer une clé primaire

Certaines tables de base de données ne contiennent pas de colonne pouvant être utilisée comme identifiant unique. Vous devez donc créer une clé primaire pour que la table puisse être utilisée dans Insights. Pour ces tables, vous devez sélectionner Copy the database table and create a primary key (Copier la table de base de données et créer une clé primaire).

Insights ne met pas à jour les données dans vos tables de base de données et n’ajoute pas de colonne de clé primaire. Une copie de la table de base de données est créée avant l’application de la clé primaire. L’emplacement de la table de base de données copiée dépend des autorisations de la connexion à la base de données. Dans le cas de connexions en lecture-écriture, la table copiée se trouve dans la base de données. Dans le cas de connexions en lecture seule, la table est copiée et stockée dans le classeur Insights. Les jeux de données copiés vers un classeur possèdent les mêmes fonctions que les couches d’entités hébergées ou les fichiers chargés.