Classes e extensão de tabela
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.
| 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á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 .
- Mapa de esquema
- Dicionário do sistema
- Módulo Tabelas
- 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
- 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 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].