Estrutura de Banco de Dados
Exclusão de Campos ou Tabelas
Quando um campo ou tabela deixar de ser utilizado, ele não deve ser removido da unit de criação e não deve ser executado nenhum comando SQL de exclusão (DROP).
A estrutura deve permanecer intacta no banco de dados, mesmo sem utilização pelo sistema.
Escolha da Unit para Criação de Tabelas
A unit utilizada para a criação de uma tabela é definida pelo seu escopo de uso:
CriaTabEsp.pas: Utilizada para tabelas específicas de um único módulo.CriaTab.pas: Utilizada para tabelas compartilhadas entre dois ou mais módulos do sistema.
Atualização e Versionamento de Tabelas
Cenário A: Tabelas de Módulo Único (CriaTabEsp.pas)
Ao criar ou modificar uma tabela de módulo único, é obrigatório registrar a alteração na unit uMatrizAlt__.pas correspondente ao módulo modificado, chamando o método de atualização com o número da versão do módulo.
- Exemplo Prático (Módulo de Compras - CC): Se uma nova coluna for adicionada a uma tabela exclusiva de Compras, você deve acessar a unit
uMatrizAltCC.pase incluir a chamada:
AddMatrizAlt('PLANFISC', '5.194');
Cenário B: Tabelas Compartilhadas (CriaTab.pas)
Quando uma tabela compartilhada for criada ou modificada, o desenvolvedor deve identificar todos os módulos afetados e replicar a chamada de atualização em todas as units uMatrizAlt__.pas desses respectivos módulos.
Como identificar os módulos afetados:
- Acesse a unit
DDL.Classes.pas. - Verifique, dentro das procedures
CriaMatrizSistemas__, quais delas fazem uso dessa tabela. Você encontrará uma estrutura semelhante a esta:
AddTabela(AMatriz, 'PLANFISC', 'Plano Fiscal');
- Para cada módulo identificado, adicione a chamada
AddMatrizAltcom o número da versão do módulo na sua respectiva unit de alteração.
- Exemplo Prático: Você adicionou um novo campo na tabela
PLANFISC(alterando aCriaTab.pas). Ao buscar porPLANFISCna unitDDL.Classes.pas, você identificou que ela é utilizada pelas seguintes procedures:CriaMatrizSistemasCC(Módulo CC)CriaMatrizSistemasEX(Módulo EX)CriaMatrizSistemasVD(Módulo VD)
Portanto, você deverá abrir as units
uMatrizAltCC.pas,uMatrizAltEX.paseuMatrizAltVD.pase adicionar a chamada de atualização em cada uma delas:
AddMatrizAlt('PLANFISC', '5.194');
Atenção: cada módulo possui um número de versão diferente. Caso tenha dúvidas, consulte o guia de como identificar o número da versão de cada módulo (disponível na outra wiki).