Classes e extensão de tabela

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 5 min. de leitura
  • Habilite uma ou mais tabelas secundárias para compartilhar campos e registros com uma tabela primária. Os administradores e desenvolvedores de aplicações só podem estender tabelas durante a criação da tabela.

    Os administradores e desenvolvedores de aplicações normalmente estendem as tabelas para criar um conjunto de registros relacionados que compartilham informações. Por exemplo, no sistema de base, as tabelas Tarefa e Item de configuração têm várias extensões:
    Tabela 1. Tabelas estendidas de amostra no sistema de base
    Tabela original Tabelas relacionadas estendidas da tabela original
    Tarefa [task]
    • Incidente [incident]
    • Problema [problem]
    • Solicitação de mudança [change_request]
    Item de configuração [cmdb_ci]
    • Aplicação [cmdb_ci_appl]
    • Computador [cmdb_ci_computer]
    • Banco de dados [cmdb_ci_database]

    Uma tabela que estende outra tabela é chamada de classe secundária e a tabela que ele estende é classe primária . Uma tabela pode ser uma classe primária e secundária, estendendo e fornecendo extensões para outras tabelas. Uma classe primária que não é uma extensão de outra tabela é chamada A. classe de base .

    Os administradores podem usar essas ferramentas para ver os relacionamentos entre as classes.
    • Mapa de esquema
    • Dicionário do sistema
    • Módulo Tabelas
    Estendendo uma tabela:
    • Vincula a nova tabela à tabela estendida.
    • Cria campos do sistema na nova tabela.
    • Cria uma ou mais tabelas de banco de dados para armazenar as classes primária e secundária. O número de tabelas que o sistema cria depende do modelo de extensão selecionado durante a criação da tabela.

    Modelos de extensão

    . ServiceNow AI Platform o oferece esses modelos de extensão.
    • Tabela por classe
    • Tabela por hierarquia
    • Tabela por partição
    O modelo de extensão determina esses atributos.
    • O número de tabelas de banco de dados criadas
    • A derivação de campos de classes primárias
    • A replicação de registros de classes secundárias

    Tabela por classe

    Tabelas criadas
    Cria uma tabela de banco de dados separada para a classe primária e cada classe secundária.
    Campos derivados da classe primária
    As classes secundárias derivam campos de classes primárias.
    Registros de dicionário criados para a classe primária
    Uma classe primária tem um registro de Dicionário para a coleção e para cada campo que pode ser derivado dela. Por exemplo, a tabela Contrato [ast_contract] tem 59 registros de Dicionário, que definem a tabela e seus campos.
    Registros de dicionário criados para classes secundárias
    Cada classe secundária só tem entradas de dicionário para campos exclusivos da classe.
    Registros replicados
    A classe primária replica cada registro armazenado em suas classes secundárias. Cada classe secundária armazena somente registros exclusivos da classe. Os registros replicados têm o mesmo valor de SYS ID em cada tabela. O sistema replica qualquer mudança feita em um registro secundário para o registro correspondente na tabela primária. Por exemplo, a tabela Contrato [ast_contract] replica registros das tabelas Leasing [ast_lease] e Garantia [ast_warranty].

    Tabela por hierarquia

    Tabelas criadas
    Cria uma tabela de banco de dados para a classe primária, que armazena todos os registros das classes primária e secundária. As classes secundárias não têm tabelas de banco de dados separadas.
    Campos derivados da classe primária
    As classes secundárias derivam campos de classes primárias. Por exemplo, a tabela Incidente deriva campos da tabela Tarefa.
    Registros de dicionário criados para a classe primária

    Uma classe primária tem um registro de Dicionário para a coleção e para cada campo que pode ser derivado dela. Por exemplo, a tabela Tarefa é uma classe primária que tem 66 registros de Dicionário, que definem a tabela e seus campos.

    A entrada de Dicionário da classe primária contém uma coluna sys_class_name cujo valor indica a qual classe secundária cada registro pertence. Por exemplo, os registros de incidente têm um valor sys_class_name de incidente e os registros de mudança têm um valor sys_class_name de mudança.

    Registros de dicionário criados para classes secundárias
    Cada classe secundária só tem entradas de dicionário para campos exclusivos da classe. Por exemplo, a tabela Incidente tem apenas 22 registros de Dicionário, que ainda não estão definidos na tabela Tarefa.
    Registros replicados
    A replicação de registro não é necessária, porque a classe primária armazena todos os registros que pertencem ao hierarquia . Por exemplo, a tabela Tarefa contém todos os registros de suas classes secundárias, como as tabelas Mudança, Incidente e Problema.

    Tabela por partição

    Tabelas criadas
    Cria uma tabela de banco de dados para a classe primária, que armazena todos os registros das classes primária e secundária. As classes secundárias não têm tabelas de banco de dados separadas. Conforme a tabela do banco de dados atinge um limite de armazenamento, o sistema adiciona dinamicamente tabelas de armazenamento ( partições ) para armazenar registros adicionais.
    Campos derivados da classe primária
    As classes secundárias não derivam campos de classes primárias. Em vez disso, cada classe secundária tem sua própria lista de campos. Por exemplo, as tabelas Item de configuração de base [cmdb], Item de configuração [cmdb_ci] e Hardware [cmdb_ci_hardware] têm suas próprias definições de campo.
    Registros de dicionário criados para a classe primária

    Uma classe primária tem um registro de Dicionário para a coleção e para cada campo relevante a ela. Por exemplo, a tabela Item de configuração base [cmdb] é uma classe primária que tem 48 registros de dicionário.

    O sistema replica as mudanças feitas nas entradas de dicionário da classe primária para as entradas de dicionário da classe secundária. Por exemplo, quando você muda a coluna de nome na tabela Item de configuração base da classe primária [cmdb], o sistema replica-a para entradas de dicionário da classe secundária, como as tabelas Item de configuração [cmdb_ci] e Hardware [cmdb_ci_hardware].

    A entrada Dicionário da classe primária contém colunas para sys_class_name e sys_class_path cujos valores indicam a qual classe secundária cada registro pertence. Por exemplo, os registros de hardware têm um valor sys_class_name de cmdb_ci_hardware e os registros de computador têm um valor sys_class_name de cmdb_ci_computer.

    Quando a tabela do banco de dados atinge um limite de armazenamento, o sistema atualiza a entrada de Dicionário da classe primária para incluir colunas para sys_storage_alias e storage_table_name. Essas entradas do Dicionário de coluna de armazenamento permitem que os administradores gerenciem a classe primária e suas tabelas de armazenamento como uma única unidade lógica.

    Registros de dicionário criados para classes secundárias
    Cada classe secundária tem um registro de Dicionário para a coleção e para cada campo relevante a ela. Por exemplo, a tabela Hardware tem 73 registros de Dicionário com alguns registros duplicando colunas na classe primária.
    Registros replicados
    A replicação de registro não é necessária, porque a classe primária armazena todos os registros que pertencem ao hierarquia . Por exemplo, a tabela Item de configuração base [cmdb] contém todos os registros de suas classes secundárias, como as tabelas Aplicação [cmdb_ci_appl], Computador [cmdb_ci_computer] e Hardware [cmdb_ci_hardware].