Utiliser une règle de division de la classe de relations

Lors de la création d’une classe de relations, par défaut, une règle de division est définie automatiquement pour cette dernière. La règle de division de la classe de relations détermine le mode de traitement des enregistrements dans la table de destination associée lorsqu’une entité de la classe d'entités d’origine est divisée au cours du processus de mise à jour.

En fonction du type de classe de relations créé (simple ou composite), différentes options de règle de division peuvent être définies :

En plus de définir une règle de division pour une classe de relations, vous pouvez également définir le modèle de division d’une classe d'entités linéaires ou surfaciques. Le modèle de division d’une classe d’entités détermine le mode de division de la géométrie et des attributs lorsqu’une entité de la classe d'entités est divisée au cours du processus de mise à jour. Update/Insert (Mettre à jour/Insérer) est le modèle de division de classe d’entités par défaut, dans lequel, après une division, la portion la plus grande de l’entité d'origine est mise à jour et une nouvelle entité est insérée pour la partie divisée. Toutefois, si vous avez des exigences de modélisation spécifiques, le modèle de division peut être remplacé par le modèle Delete/Insert/Insert (Supprimer/Insérer/Insérer), dans lequel l’entité d'origine est supprimée et deux nouvelles entités sont insérées.

Pour plus de détails sur la manière de définir et d’utiliser cette propriété des classes d’entités, voir Modèle de division.

Les sections ci-après abordent plus en détail chacune des options de règle de division avec un exemple des résultats obtenus en utilisant les modèles de division de classe d’entités avec chacune des règles de division de classe de relations.

Défault (simple)

La règle de division par défaut des classes de relations simples consiste à conserver les relations sur l’entité la plus grande obtenue après une division. Dans une classe de relations, si la classe d’entités d’origine utilise le modèle de division de classe d’entités par défaut, Update/Insert (Mettre à jour/Insérer), les classes de relations simples et composites partagent le même comportement quant au mode d’association des enregistrements connexes après une division. En d’autres termes, la classe de relations sur l’objet le plus grand est conservé après une division.

Règle de division de la classe de relations utilisant la valeur par défaut pour les types de classe de relations simples

Défaut (composite)

La règle de division par défaut d’une classe de relations composite dépend du modèle de division de la classe d’entités défini pour la classe d'entités d’origine. Si le modèle de division de la classe d'entités est défini sur Update/Insert (Mettre à jour/Insérer), la relation est conservée sur la plus grande entité obtenue après une division. Si le modèle de division de la classe d'entités est défini sur Delete/Insert/Insert (Supprimer/Insérer/Insérer), lorsqu’une entité est divisée dans la classe d'entités d’origine, l’entité d'origine est supprimée avec les parties divisées et leur relation entre elles.

Règle de division de la classe de relations utilisant la valeur par défaut pour les types de classe de relations composite

Dupliquer les objets associés

L’option Duplicate related objects (Dupliquer les objets associés) génère des copies des objets associés et les affecte aux deux parties résultantes. Si l’option Duplicate related objects (Dupliquer les objets associés) est définie comme règle de division de la classe de relations et qu’une entité de la classe d'entités d’origine est divisée lors de la mise à jour, les enregistrements liés à l’origine à cette entité restent liés à la portion la plus grande. Un enregistrement associé est créé pour chaque nouvelle partie et les valeurs définies par l’utilisateur dans l’enregistrement d’origine associé sont dupliquées.

Règle de division de la classe de relations utilisant l’option Duplicate related objects (Dupliquer les objets associés)

Définir la règle de division de la classe de relations

Vous pouvez définir la règle de division des entités associées dans une classe de relations par l’une des méthodes suivantes :

  • Propriétés de classe de relations : dans l’onglet General (Général) de la boîte de dialogue Relationship Class Properties Propriétés de classe de relations, faites défiler l’affichage vers le bas jusqu’à Split Policy (Règle de division). Cliquer sur la cellule à côté de Split Policy (Règle de division) a pour effet d’activer un menu déroulant. Choisir une règle de division dans la liste renseigne l’outil de géotraitement Définir la règle de division de la classe de relations et l’exécute en arrière-plan.

    Options du menu déroulant Règle de division de la classe de relations

  • Outil Définir la règle de division de la classe de relations : utilisez l’outil de géotraitement Définir la règle de division de la classe de relations pour changer la règle de division d’une classe de relations.

    Outil de géotraitement Set Relationship Class Split Policy (Définir la règle de division de la classe de relations)

Prérequis

Lorsque vous vous préparez à utiliser l’outil de géotraitement Set Relationship Class Split Policy (Définir la règle de division de la classe de relations), tenez compte des points suivants :

  • Si la classe de relations en entrée provient d’une géodatabase d'entreprise, vous devez être le propriétaire des données pour exécuter cet outil.
  • Les classes de relations dans lesquelles la classe d’entités d’origine utilise le modèle de division Delete/Insert/Insert (Supprimer/Insérer/Insérer) ne sont pas prises en charge dans les versions antérieures à ArcGIS Pro 2.6 ou ArcGIS Enterprise 10.8.1.
  • Les classes de relations dont la règle de division est définie sur Duplicate related objects (Dupliquer les objets associés) ne sont pas prises en charge dans les versions antérieures à ArcGIS Pro 2.6 ou ArcGIS Enterprise 10.8.1.

Remarque :
Les outils de géotraitement Set Relationship Class Split Policy (Définir la règle de division de la classe de relations) et Set Feature Class Split Model (Définir le modèle de division de la classe d’entités) ne sont pas exécutés sur un espace de travail du service d’entités. Définissez ces comportements sur vos données avant de les publier.

Les exigences supplémentaires suivantes sont basées sur ces comportements de la règle de division de la classe de relations :

  • Default (simple) (Défaut (simple))
    • Si la classe de relations est de type simple, les options Default (simple) (Défaut (simple)) et Duplicate related objects (Dupliquer les objets associés) sont disponibles.
    • Les relations simples peuvent avoir des cardinalités de type un vers un (1:1), un vers plusieurs (1:M) ou plusieurs vers plusieurs (M:M).
  • Default (composite) ((Défaut (composite))
    • Si la classe de relations est de type composite, les options Default (composite) (Défaut (composite)) et Duplicate related objects (Dupliquer les objets associés) sont disponibles.
    • Les relations composites sont toujours de type un vers plusieurs (1:M) lorsque vous les créez, mais peuvent être contraintes au type un vers un (1:1) avec des règles de relations.
  • Duplicate related objects (Dupliquer les objets associés)
    • La cardinalité de la classe de relations est un vers un (1:1) ou un vers plusieurs (1:M).
      Remarque :
      Cette règle de division n’est pas disponible pour les classes de relations dans lesquelles la cardinalité est plusieurs à plusieurs.
    • La classe d’origine doit être une classe d’entités polylignes ou surfaciques.
    • La clé primaire de la classe d'entités d’origine doit être définie sur le champ GlobalID.
    • La classe d'origine ne peut pas posséder d’extension de classe avec une règle de division de relation personnalisée.
    • La classe de destination est une classe d’objets, telle qu’une table, et ne peut pas correspondre à une classe d'entités.
    • La classe de destination n’est pas la classe d'origine d’une autre classe de relations un à un (1:1) ou un à plusieurs (1:M) dans laquelle la clé primaire d’origine est définie sur un champ autre que GlobalID.
    • La classe de destination n’est pas la classe de destination d’une autre classe de relations un à un (1:1).

Astuce :
L’utilisation de l'outil Copier/Coller ou de l’option d’exportation XML conserve la règle de division définie pour une classe de relations.

Vérifier les propriétés de la classe de relations

Pour vérifier la règle de division définie pour la classe de relations dans la boîte de dialogue Relationship Class Properties (Propriétés de la classe de relations), procédez comme suit :

  1. Démarrez ArcGIS Pro.
  2. Dans la fenêtre Catalog (Catalogue), dans le dossier Databases (Bases de données), cliquez sur la connexion à la géodatabase pour la développer.
  3. Cliquez avec le bouton droit de la souris sur la classe de relations et choisissez Properties (Propriétés).
    Relationship class properties (Propriétés de la classe de relations)
  4. Dans l’onglet General (Général), la règle de division de la classe de relations se trouve dans la partie inférieure de la boîte de dialogue Relationship Class Properties (Propriétés de la classe de relations).