Habilite uma ou mais tabelas secundárias para compartilhar campos e registros com uma tabela primária. Administradores e desenvolvedores de aplicações só podem estender tabelas durante a criação de tabelas.

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 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 [incidente]
  • 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áriae a tabela que ela estende é a 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 de classe base.

Os administradores podem usar essas ferramentas para ver os relacionamentos entre classes.
  • Mapa de esquema
  • Dicionário do sistema
  • Módulo de tabelas
Estender uma tabela:
  • Vincula a nova tabela à tabela de extensão.
  • Cria campos do sistema na nova tabela.
  • Cria uma ou mais tabelas de banco de dados para armazenar as classes primárias e secundárias. 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

O Now Platform 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 das 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 tem somente 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 Lease [ast_lease] e Warranty [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 das 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 de tarefas é uma classe primária que tem 66 registros de Dicionário, que definem a tabela e seus campos.

A entrada 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 incidentes 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 tem somente 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 de tarefas.
Registros replicados
A replicação de registro não é necessária porque a classe primária armazena todos os registros que pertencem à hierarquia. Por exemplo, a tabela de tarefas 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 de 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 das 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 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 do Dicionário da classe primária para as entradas do Dicionário da classe secundária. Por exemplo, quando você altera a coluna de nome na tabela Item de configuração base [cmdb] da classe primária, o sistema a replica para as 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 de sys_class_name de cmdb_ci_computer.

Quando a tabela de banco de dados atinge um limite de armazenamento, o sistema atualiza a entrada Dicionário da classe primária para incluir colunas para sys_storage_alias e storage_table_name. Essas entradas de Dicionário da 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 à 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].