Extensions de tables et classes

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 5 minutes de lecture
  • Permettez à une ou plusieurs tables enfants de partager des champs et des enregistrements avec une table parente. Les administrateurs et les développeurs d’applications peuvent uniquement étendre les tables pendant la création de tables.

    En général, les administrateurs et les développeurs d’applications étendent les tables pour créer un ensemble d’enregistrements connexes qui partagent des informations. Par exemple, dans le système de base, les tables Tâche et Élément de configuration ont plusieurs extensions :
    Tableau 1. Exemple de tables étendues dans le système de base
    Table d’origine Tables connexes étendues à partir de la table d’origine
    Tâche [task]
    • Incident [incident]
    • Problème [problem]
    • Demande de changement [change_request]
    Élément de configuration [cmdb_ci]
    • Application [cmdb_ci_appl]
    • Ordinateur [cmdb_ci_computer]
    • Base de données [cmdb_ci_database]

    Une table qui étend une autre table est appelée classe enfant, et la table qu’elle étend est la classe parent. Une table peut être à la fois une classe parent et enfant, à la fois une extension et une fourniture d’extensions pour d’autres tables. Une classe parente qui n’est pas une extension d’une autre table est appelée classe de base.

    Les administrateurs peuvent utiliser ces outils pour afficher les relations entre les classes.
    • Carte de schéma
    • Dictionnaire système
    • Module de tables
    Extension d’une table :
    • Relie la nouvelle table à la table d’extension.
    • Crée des champs système dans la nouvelle table.
    • Crée une ou plusieurs tables de base de données pour stocker les classes parent et enfant. Le nombre de tables créées par le système dépend du modèle d’extension sélectionné lors de la création de la table.

    Modèles d’extension

    Le ServiceNow AI Platform propose ces modèles d’extension.
    • Table par classe
    • Table par hiérarchie
    • Table par partition
    Le modèle d’extension détermine ces attributs.
    • Nombre de tables de base de données créées
    • Dérivation des champs à partir des classes parentes
    • La réplication des enregistrements à partir des classes enfants

    Table par classe

    Tables créées
    Crée une table de base de données distincte pour la classe parente et chaque classe enfant.
    Champs dérivés de la classe parente
    Les classes enfants dérivent des champs des classes parentes.
    Enregistrements de dictionnaire créés pour la classe parente
    Une classe parente dispose d’un enregistrement de dictionnaire pour la collection et pour chaque champ qui peut en être dérivé. Par exemple, la table Contrat [ast_contract] contient 59 enregistrements de dictionnaire, qui définissent la table et ses champs.
    Enregistrements de dictionnaire créés pour les classes enfants
    Chaque classe enfant ne dispose que d’entrées de dictionnaire pour les champs qui lui sont propres.
    Enregistrements répliqués
    La classe parent réplique chaque enregistrement stocké dans ses classes enfants. Chaque classe enfant stocke uniquement les enregistrements qui lui sont propres. Les enregistrements répliqués ont la même valeur d’ID système dans chaque table. Le système réplique toute modification que vous apportez à un enregistrement enfant en fonction de l’enregistrement correspondant dans la table parente. Par exemple, la table Contrat [ast_contract] réplique les enregistrements des tables Bail [ast_lease] et Garantie [ast_warranty].

    Table par hiérarchie

    Tables créées
    Crée une table de base de données pour la classe parente, qui stocke tous les enregistrements des classes parent et enfant. Les classes enfants n’ont pas de tables de base de données distinctes.
    Champs dérivés de la classe parente
    Les classes enfants dérivent des champs des classes parentes. Par exemple, la table Incident dérive les champs de la table Tâche.
    Enregistrements de dictionnaire créés pour la classe parente

    Une classe parente dispose d’un enregistrement de dictionnaire pour la collection et pour chaque champ qui peut en être dérivé. Par exemple, la Task table (Table de tâches) est une classe parente qui possède 66 enregistrements de dictionnaire, qui définissent la table et ses champs.

    L’entrée de dictionnaire de la classe parente contient une colonne sys_class_name dont la valeur indique à quelle classe enfant appartient chaque enregistrement. Par exemple, les enregistrements d’incident ont une valeur sys_class_name d’incident, et les enregistrements de changement ont une valeur sys_class_name changement.

    Enregistrements de dictionnaire créés pour les classes enfants
    Chaque classe enfant ne dispose que d’entrées de dictionnaire pour les champs qui lui sont propres. Par exemple, la table Incident ne contient que 22 enregistrements de dictionnaire qui ne sont pas déjà définis dans la table Tâche.
    Enregistrements répliqués
    La réplication d’enregistrement n’est pas nécessaire, car la classe parent stocke tous les enregistrements appartenant à la hiérarchie. Par exemple, la table Task (Tâche) contient tous les enregistrements de ses classes enfants, telles que les tables Change, Incident et Problem (Problème).

    Table par partition

    Tables créées
    Crée une table de base de données pour la classe parente, qui stocke tous les enregistrements des classes parent et enfant. Les classes enfants n’ont pas de tables de base de données distinctes. Lorsque la table de base de données atteint une limite de stockage, le système ajoute dynamiquement des tables de stockage (partitions) pour stocker des enregistrements supplémentaires.
    Champs dérivés de la classe parente
    Les classes enfants ne dérivent pas de champs des classes parentes. Au lieu de cela, chaque classe enfant a sa propre liste de champs. Par exemple, les tables Base Configuration Item (Élément de configuration de base) [cmdb], Configuration Item (Élément de configuration) [cmdb_ci] et Hardware (Matériel) [cmdb_ci_hardware] ont toutes leurs propres définitions de champ.
    Enregistrements de dictionnaire créés pour la classe parente

    Une classe parente a un enregistrement de dictionnaire pour la collection et pour chaque champ pertinent. Par exemple, la table Base Configuration Item (Élément de configuration de base) [cmdb] est une classe parente qui compte 48 enregistrements de dictionnaire.

    Le système réplique les modifications apportées à la classe parente Entrées du dictionnaire à la classe enfant Entrées du dictionnaire. Par exemple, lorsque vous modifiez la colonne de nom dans la table Base Configuration Item (Élément de configuration de base) de la classe parente [cmdb], le système la réplique dans les entrées du dictionnaire de la classe enfant telles que les tables Configuration Item (Élément de configuration) [cmdb_ci] et Hardware (Matériel) [cmdb_ci_hardware].

    L’entrée de dictionnaire de la classe parente contient des colonnes pour les sys_class_name et les sys_class_path dont les valeurs indiquent à quelle classe enfant appartient chaque enregistrement. Par exemple, les enregistrements de matériel ont une valeur sys_class_name de cmdb_ci_hardware et les enregistrements d’ordinateur ont une valeur sys_class_name de cmdb_ci_computer.

    Lorsque la table de base de données atteint une limite de stockage, le système met à jour l’entrée de dictionnaire de la classe parente afin d’inclure des colonnes pour sys_storage_alias et storage_table_name. Ces entrées de dictionnaire de colonne de stockage permettent aux administrateurs de gérer la classe parente et ses tables de stockage comme une seule unité logique.

    Enregistrements de dictionnaire créés pour les classes enfants
    Chaque classe enfant dispose d’un enregistrement de dictionnaire pour la collection et pour chaque champ pertinent. Par exemple, la table Hardware (Matériel) contient 73 enregistrements de dictionnaire, certains enregistrements dupliquant des colonnes de la classe parente.
    Enregistrements répliqués
    La réplication d’enregistrement n’est pas nécessaire, car la classe parent stocke tous les enregistrements appartenant à la hiérarchie. Par exemple, la table Base Configuration Item (Élément de configuration de base) [cmdb] contient tous les enregistrements de ses classes enfants, telles que les tables Application [cmdb_ci_appl], Computer (Ordinateur) [cmdb_ci_computer] et Hardware (Matériel) [cmdb_ci_hardware].