Alias de stockage

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 5 minutes de lecture
  • Découvrez le rôle que jouent les alias de stockage dans la manipulation des données et la création de champs dans le Now Platform.

    Comprendre les alias de stockage est important pour une gestion efficace des données et une personnalisation des schémas dans le Now Platform, en particulier lorsqu’il s’agit de hiérarchies de tables complexes comme celles de la table Tâche [task].

    Par défaut, les administrateurs ont accès à la table Alias de colonnes de stockage [sys_storage_alias] au sein d’une instance. Toutefois, les processus transactionnels sur cette table ne peuvent pas être effectués par un administrateur à partir de l’interface utilisateur.

    Hiérarchie et modèles de tables

    Comprendre l’aliasing de stockage nécessite une connaissance des hiérarchies de tables au sein de la table Tâche [task], qui implique deux modèles : Table par hiérarchie et Table par classe.

    Table par hiérarchie
    Ce modèle utilise une seule table physique, la table Tâche [task], qui comporte une hiérarchie aplatie où toutes les colonnes de la hiérarchie des tâches n’existent que sur la table de tâches. Par exemple, les champs associés aux demandes de changement ne se trouvent pas dans une table de demande de changement [change_request] distincte, mais sont intégrés dans la table Tâche [task]. Vous pouvez vérifier si une table est une table par hiérarchie en consultant le champ Modèle d’extension dans la table Tables [sys_db_object]. Si le parent de la table est un enfant direct de la table Tâche [task], la table utilise Table par hiérarchie.

    Une table étendue hérite de la hiérarchie de son parent. Par exemple, la table IMAC [change_request_imac] est une table enfant de la table Demande de changement [change_request], qui étend la table Tâche [task]. Étant donné que la table Demande de changement [change_request] est Table par hiérarchie, le modèle de table IMAC [change_request_imac] est également Table par hiérarchie. Les tables héritées telles que la table Incident [incident], la table Demande de changement [change_request] et la table Problème [problem] font toutes partie de la hiérarchie de table Tâche [task] aplatie.

    Table par classe
    Ce modèle s’applique aux tables qui existent physiquement dans la base de données. Il est utilisé pour les nouvelles tables qui s’étendent directement à partir de la table Tâche [task] lorsque le nombre de lignes de tâche dépasse 1 million de lignes. Contrairement à la table par hiérarchie, la table par classe n’utilise pas le glomming car elle ne fonctionne pas au sein d’une hiérarchie aplatie.

    Définition de l’alias de stockage

    Un alias de stockage est créé pour chaque champ d’une table au sein d’une instance. Familiarisez-vous avec les champs clés de la table Alias de colonnes de stockage [sys_storage_alias].

    Nom de l'élément
    Indique comment le champ apparaît aux utilisateurs, ce qui est important pour les interactions de l’interface utilisateur et le scripting.
    Alias de stockage
    Indique la colonne physique exacte où les données d’un champ sont stockées. La valeur de l’alias de stockage est utilisée en combinaison avec la valeur table_name pour identifier les données à manipuler. La valeur de l’alias de stockage est la colonne physique réelle de la table Tâche [task].
    Nom de table de stockage
    Spécifie la table physique qui héberge l’élément. Pour les tables Table par hiérarchie, la valeur est toujours tâche. Pour les tables Table par classe, la valeur est le nom de la table physique.
    Table
    Spécifie la classe logique à laquelle chaque élément est lié dans la table Tâche physique [task]. L’élément Table contient la valeur table_name qui est le discriminateur de classe.
    Figure 1. Alias de stockage
    Éléments avec alias de stockage a_ref_2 sur la table Tâche.

    Dans cet exemple, l’alias de stockage de l’élément cab_delegate est a_ref_2 et la table de stockage physique où les données sont stockées est tâche. L’exemple représente 10 éléments logiques dans différentes classes logiques sur la table Tâche [table] qui sont tous liés au même alias a_ref_2 sur la table Tâche [task] physique.

    Les éléments frères sont glommed, ce qui signifie qu’ils partagent une colonne physique sur la table Tâche [task]. Vous pouvez interroger les données à partir de l’élément logique cab_delegate à l’aide d’une requête telle que :

    SELECT a_ref_2 from task WHERE sys_class_name='change_request' AND a_ref_2 IS NOT NULL

    La requête spécifie les données dans la colonne physique a_ref_2. Le change_request du discriminateur de classe est utilisé en combinaison avec l’alias de stockage a_ref_2 pour interroger l’élément logique cab_delegate à partir de la classe logique change_request sur la table Tâche physique [task].

    La convention de dénomination des champs créés dans les tables physiques réelles peut varier en fonction du type de champ. Dans cet exemple, a_ref_2 s’agit d’un alias sur la table Tâche [task] qui contient des valeurs pour les champs de référence.

    Fonctionnalité et utilisation

    Les alias de stockage servent à plusieurs fins.

    Mappage
    Les alias mappent les éléments logiques (table par hiérarchie) ou physiques (table par classe) aux colonnes physiques réelles de la base de données principale. L’élément logique peut être rattaché à une colonne physique plus grande que la max_length de l’élément logique.
    Glomming
    Les alias permettent à plusieurs éléments frères de partager une seule colonne physique dans une table par modèle hiérarchique.
    Mappage d’étiquette
    Les alias associent les enregistrements sys_documentation (étiquette) à leurs éléments respectifs, améliorant ainsi la visibilité dans les formulaires, les rapports et les vues de liste.

    Restrictions et règles

    • Deux éléments logiques au sein de la même classe ne peuvent pas partager une colonne physique. Par exemple, deux champs de chaîne créés sur la table Incident [incident] ne peuvent pas être mappés à la même colonne physique dans la base de données.
    • Un élément parent et son enfant ne peuvent pas partager une colonne physique. Par exemple, un champ créé dans la table Incident [incident] ne peut pas être mappé à une colonne physique lorsque cette colonne physique est déjà mappée à un champ de la table Tâche [task].
    • Seuls les éléments frères peuvent partager une colonne physique. Par exemple, un champ de référence sur la table Demande de changement [change_request] et un champ de référence sur la table Incident [incident] peuvent tous deux être mappés à la même colonne physique.
    • Les champs créés directement sur la table Tâche [task] (où sys_class_name est « tâche ») ne peuvent pas être partagés.