Extensão de tabela e classes
-
- Atualizado1 de ago. de 2024
- 5 min. de leitura
- Xanadu
- "Table Administration"
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.
Tabela original | Tabelas relacionadas estendidas da tabela original |
---|---|
Tarefa [task] |
|
Item de configuração [cmdb_ci] |
|
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.
- Mapa de esquema
- Dicionário do sistema
- Módulo de tabelas
- 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
- Tabela por classe
- Tabela por hierarquia
- Tabela por partição
- 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].