Définir des champs dans les tables

Les champs sont les composants qui fournissent la structure d'une table. Vous ne pouvez pas avoir de table sans champs. Par exemple, vous pouvez créer une table vide qui a des champs définis, mais aucune ligne (enregistrement).

Dans les bases de données, les champs permettent de gérer les relations entre les tables. Pour ce faire, il faut créer des champs correspondants dans plusieurs tables. Par exemple, si vous avez stocké une table nommée toy_store dans une base de données et que vous avez également stocké une table du personnel pour effectuer le suivi des employés de chaque magasin, vous créez un champ commun entre les deux tables, qui est rempli par un ID de magasin. La valeur d'ID de magasin pour un magasin de jouets spécifique est le même dans les deux tables.

Ci-dessous, un champ STORE_ID a été ajouté à la table toy_store :

Table toy_store comportant le champ d’ID de magasin.
Table toy_store comportant le champ STORE_ID.

La table toy_store est reliée à une table des employés par l'ID de magasin. La table ci-dessous affiche trois employés du magasin The Play House :

Table des employés
La table des employés est liée à la table toy_store par le champ STORE_ID.

Certains champs sont également utilisés pour gérer les relations entre des tables et leurs index attributaires.

Les champs d'une table stockent la même catégorie de données dans le même type de données. Par exemple, si vous avez un champ CUSTOMER_NAMEdans une table de clients, les entrées pour ce champ sont toutes des noms de client et sont stockées en tant que texte. Vous ne mélangez pas les entrées, c’est-à-dire que vous ne mettez pas un nom de client dans ce champ pour un enregistrement et un nom de produit dans ce même champ pour un autre enregistrement.

Lorsque vous créez une table ou que vous ajoutez des champs à une table existante, vous définissez le type de données utilisé pour stocker les données dans chaque champ. Dans certains cas, vous spécifiez également la longueur du champ.

Noms de champs

Les noms de champs sont les noms que vous attribuez aux colonnes d'une table. Les noms doivent indiquer les données qui sont contenues dans chaque colonne. Par exemple, lorsque vous créez une classe d’entités dans ArcGIS, la table est déjà remplie avec un champ ObjectID et un champ de forme. Le champ ObjectID contient l'identifiant unique pour chaque objet de la classe d'entités. Le champ de forme définit le type de forme stocké dans la classe d’entités : point, ligne, polygone, multi-points ou multipatch.

Vous pouvez également utiliser des expressions définies pour indiquer le type de colonne. Par exemple, si vous créez un identifiant unique distinct dans une table que vous utilisez à des fins d’indexation, vous pouvez nommer le champ ID_CU, CU indiquant qu’il s’agit d’une clé unique.

Les noms de champs d’une même table doivent être uniques ; par exemple, vous ne pouvez pas avoir deux champs portant le nom ObjectID. Les noms de champs doivent également commencer par une lettre et ne pas contenir d’espaces ou de mots réservés. Pour plus d’informations sur les limitations propres aux bases de données, reportez-vous à la rubrique Limites de taille et de nom de la géodatabase fichier, Limites de taille et de nom de la géodatabase mobile ou Données de base de données et de stockage de données cloud dans ArcGIS.

Certains noms de champs apparaissent dans ArcGIS avec leurs noms complets pour les tables stockées dans une géodatabase d’entreprise. Par exemple, si vous créez ou importez une classe d’entités surfaciques contenant un champ nommé Area, la base de données, la structure et le nom de table lui sont ajoutés. Il s'agit du nom qui s'affiche dans la table attributaire de la classe d'entités. Cela signifie que pour une classe d’entités surfaciques nommée archsites stockée dans la structure prof de la base de données museum, le champ Area apparaît sous la forme MUSEUM.PROF.ARCHSITES.AREA.

La liste suivante contient tous les noms de champs complets dans une géodatabase d’entreprise :

  • FID
  • AREA
  • LEN
  • POINTS
  • NUMOFPTS
  • ENTITY
  • EMINX
  • EMINY
  • EMAXX
  • EMAXY
  • EMINZ
  • EMAXZ
  • MIN_MEASURE
  • MAX_MEASURE

Pour ce type de cas, utilisez éventuellement un nom de champ différent ou un alias de champ.

Renommer des champs

Vous pouvez renommer les champs d’une table ou d’une classe d’entités dans la vue des champs.

Pour renommer un champ, cliquez avec le bouton droit sur la classe d’entités ou sur la table dans la fenêtre Catalog (Catalogue) et sélectionnez Data Design (Conception de données) > Fields (Champs). Cette opération ouvre la vue des champs, dans laquelle vous pouvez modifier les propriétés des champs. Double-cliquez sur la cellule du nom du champ à modifier et saisissez un nouveau nom de champ. Pour valider vos modifications, cliquez sur le bouton Save (Enregistrer) Enregistrer dans le groupe Changes (Modifications) sur l’onglet Fields (Champs).

Il est impossible de renommer les champs suivants :

  • Champs ObjectID et ID global
  • Champs liés à la forme, tels que Shape (Forme), shape length (Longueur de forme), shape area (Surface de la forme)
  • Champs de rôles auxiliaires et activés ou champs de pondération de réseau d’une classe d’entités de réseau
  • champs de représentation ;
  • Champs d’une classe d’entités faisant partie d’un jeu de données réseau, d’un terrain ou d’un atelier parcellaire
  • Champs utilisés pour le suivi de l’éditeur
  • Champs de clé primaire et de clé étrangère de classe de relations
  • Champ de sous-type
  • Champs raster

Règles et limitations liées aux noms de champ

Le tableau suivant dresse la liste des règles de caractères prises en charge dans les noms de champs :

CaractèreDébut du nomAutre positionDans l’alias

Lettres (A–Z)

OuiOuiOui

Trait de soulignement ( _ )

OuiOui

Chiffres (0–9)

OuiOui

Espaces

Oui

Symboles (autres que le trait de soulignement)

Oui

Lettres et chiffres en exposant

Oui

Lettres et chiffres en indice

Oui

Règles et limitations supplémentaires appliquées aux noms de champ :

Remarque :

Pour en savoir plus, reportez-vous au tableau récapitulant les règles et limitations appliquées aux noms de classe d’entités et de table dans la rubrique Définir des propriétés de classe d’entités.

Alias de champ

Les alias de champ vous permettent d'attribuer un nom secondaire à un champ. Vous utilisez généralement des noms de champ aussi courts que possible afin de donner une indication sur les données qui sont stockées dans ce champ. Vous ne pouvez pas utiliser d’espaces ni de caractères spéciaux dans le nom de champ, et certains champs s’affichent dans la table avec leurs noms complets. Dans ce cas, vous pouvez utiliser un alias de champ pour attribuer au champ un nom plus descriptif. Par exemple, si un champ nommé ST_SUFX stocke le type de rue, indiqué par le suffixe utilisé pour le nom de rue, vous pouvez attribuer à ce champ un alias Suffixe du nom de rue.

Pour en savoir plus sur la définition d'un alias de champ

Conseil :

Des méthodes géotraitement vous permettent de valider les noms de champ et de table. Pour plus d’informations, reportez-vous à la rubrique Validation des noms de tables et de champs dans Python.

Utiliser des domaines pour contrôler les valeurs de champ

Les domaines attributaires sont des règles qui indiquent les valeurs valides pour un champ dans une table d'une géodatabase. Ils assurent l’intégrité des données en limitant les valeurs de données qu’un utilisateur peut ajouter à un champ particulier.

Vous pouvez appliquer des domaines attributaires à des champs uniquement si un ensemble définissable ou une plage de valeurs spécifiques est possible pour ce champ. Par exemple, il serait difficile d’appliquer un domaine à un champ stockant la réponse à la question de l’enquête Quelle est votre nourriture préférée ? puisque cette question peut avoir de nombreuses réponses différentes. Toutefois, vous pouvez attribuer un domaine attributaire à un champ qui stocke des données sur la couleur des yeux, car il n’y a que quelques valeurs valides possibles.

  • Noir
  • Marron
  • Bleu
  • Vert
  • Noisette
  • Gris
  • Violet

L’utilisation d’un domaine attributaire pour un champ qui stocke des données sur la couleur des yeux garantit la cohérence des valeurs. Si les personnes qui collectent les données peuvent saisir n’importe quelle couleur dans un champ de texte pour la couleur des yeux, vous pouvez vous retrouver avec les valeurs suivantes pour les yeux bleus :

  • Azur
  • Marine
  • Bleu ciel
  • Cobalt
  • Bleu vert

Les domaines attributaires empêchent également les fautes d'orthographe ou les erreurs typographiques. Même si des collecteurs de données savent qu’ils doivent utiliser uniquement le terme bleu pour les yeux bleus, ils peuvent mal orthographier le mot (blue) ou taper la mauvaise lettre lorsque qu’ils saisissent le mot (vleu) dans un champ textuel.

Types de domaines attributaires

Il existe deux types de domaines attributaires permettant de restreindre des valeurs de champ : le domaine de valeurs précodées et le domaine par plage.

Domaine de valeurs précodées

Un domaine de valeurs précodées utilise des codes pour définir un ensemble de valeurs autorisées pour un champ qui stocke des données discrètes. Vous pouvez utiliser un domaine de valeurs précodées pour la plupart des types de données de champ.

Remarque :

  • Les domaines dans les types de champ Date, Date only (Date uniquement) et Time only (Heure uniquement) ne prennent en charge que la précision basée sur la seconde entière.
  • Les domaines dans les champs Global ID (ID global), Object ID (ID d’objet), Blob, Raster et Timestamp offset (Décalage de l’horodatage) ne sont pas pris en charge avec une valeur et une plage précodées.

Pour le champ de couleur des yeux, vous pouvez créer un domaine codé utilisant l’un des exemples de jeux de codes suivants :

  • Exemple 1
    • Noi = Noir
    • Mar = Marron
    • Ble = bleu
    • Ver = Vert
    • Nst = Noisette
    • Gri = Gris
    • Vlt = Violet
  • Exemple 2
    • 1 = Noir
    • 2 = Marron
    • 3 = Bleu
    • 4 = Vert
    • 5 = Noisette
    • 6 = Gris
    • 7 = Violet

Domaine par plage

Un domaine par plage définit une plage de valeurs numériques autorisées pour un champ.

Le champ doit être de type numérique ou date pour utiliser un domaine par plage. Vous pouvez appliquer un domaine par plage aux types de champ entier court, entier long, entier très grand, flottant, double, date, date uniquement et heure uniquement. Par exemple, vous pouvez appliquer un domaine par plage à un champ qui stocke des données sur les poids de naissance dans le cas de naissances uniques pour les gorilles des plaines occidentales dans les zoos. La plage irait du poids le plus bas (1 kg) au poids le plus haut (2,5 kg).

Pour en savoir plus sur les domaines attributaires

En savoir plus sur la création et la gestion de domaines

Utiliser des sous-types

Les sous-types sont des classifications au sein d'une classe d'entités ou d'une table dans une géodatabase. Ils permettent de regrouper logiquement des entités selon une caractéristique ou un comportement unique des données. Cette caractéristique ou ce comportement est représenté par les valeurs d'un champ de la table. Par exemple, vous pouvez avoir des sous-types pour les différents types de voies navigables, telles que les torrents, les ruisseaux, les canaux et les rivières pour une table d'hydrologie. Pour chacun de ces sous-types, vous pouvez appliquer des règles de topologie, des règles de connectivité, des valeurs par défaut et des règles de relations différentes.

L'utilisation de sous-types pour stocker des groupes d'entités reliées peut améliorer les performances des requêtes. Si vous stockez les différents types de données dans des classes d’entités distinctes au lieu d’utiliser des sous-types, vous avez un plus grand nombre de classes d’entités dans la base de données, ce qui peut augmenter la durée des recherches.

Les règles suivantes s’appliquent lorsque vous utilisez des sous-types :

  • Un sous-type ne peut être appliqué qu'à un seul champ d'une table ou d'une classe d'entités.
  • Le champ sur lequel vous basez le sous-type doit être un champ de type entier long ou court.
  • Vous pouvez appliquer une topologie et des règles de relation différente aux différents sous-types.
  • Vous pouvez appliquer différents attributs ou domaines codés à d'autres champs de la table selon leur sous-type.
    Remarque :

    Vous appliquez le domaine à un champ pour un sous-type spécifique.

Pour en savoir plus sur les sous-types

En savoir plus sur la création et la gestion de sous-types