Documentação

4 Modelos de dados

Para acessar os modelos de dados, basta clicar no segundo item do menu superior MODELOS DE DADOS. Esta seção mostra os modelos de entidade relacional (ER) da aplicação. O Adianti Builder gera automaticamente três modelos:

  • Permissão

  • Comunicação

  • Log

Esses três modelos estão disponíveis apenas para leitura, não permitindo modificações em sua modelagem.

Todos os modelos, criados pelo usuário ou aplicação, oferecem a opção de download do script de criação das tabelas do banco de dados, o qual será compatível com o banco de dados escolhido no momento da criação do projeto pelo desenvolvedor. Outra opção disponível é o download dos modelos de classe do modelo através do link PHP.

Modelos de dados

Através da caixa de texto disposta no centro da tela é possível realizar buscas pelo nome dos modelos de dados.

Para criar um novo modelo basta clicar no link Novo modelo que se encontra no menu lateral esquerdo.

4.1 Permissão

O Adianti Builder possui controle de permissões de acesso por usuários e por grupos já integrado em seu código. Além disso, conta com cadastros completos de usuários, grupos, unidades, programas e permissões.

Modelo permissão

  • system_users: Representa um usuário do sistema.

  • system_unit: Representa uma unidade da organização, pode ser uma filial, um departamento, ou outro tipo de divisão. Um usuário estará vinculado à uma unidade.

  • system_group: Representa um grupo de usuários. Um usuário poderá fazer parte de muitos grupos.

  • system_program: Representa um programa. Basicamente é uma página representada por uma classe em app/control.

  • system_user_group: Vincula usuários com grupos.

  • system_user_program: Vincula usuários com programas.

  • system_group_program: Vincula grupos de usuários com programas.

  • system_preference: Armazena preferências gerais do sistema.

  • system_user_untit: Armazenas às unidades do usuário.

4.1.1 Menus

Os menus de uma aplicação construída com base no Adianti Builder são definidos em XML, mas se moldam conforme o nível de permissão do usuário que está logado. Portanto para permitir acesso a novas telas o programa bem como a permissão para um grupo ou usuário devem ser cadastradas.

4.2 Comunicação

O Adianti Builder também oferece um gerenciador de documentos, que permite que os usuários enviem e compartilhem documentos entre si. Também é possível trocar mensagens entre os usuários do sistema e registrar notificações do sistema.

Modelo comunicação

  • system_document: Representa um documento a ser armazenado na plataforma (DOC, PDF, XLS, etc).

  • system_document_category: Representa uma categoria de documentos, uma forma de classificar estes.

  • system_document_group: Vincula (compartilha) documentos à grupos de usuários.

  • system_document_user: Vincula (compartilha) documentos à usuários.

  • system_message: Registra uma mensagem a ser enviada de um usuário para outro na aplicação.

  • system_notification: Registra uma notificação gerada pelo sistema para um determinado usuário, com uma ação a ser executada.

4.3 Log

Controle de execução de comandos SQL e alteração de valores de registros são fornecidos automaticamente pelo Adianti Builder. O controle de mudanças nos valores de registros pode ser ativado durante a construção do modelo ER da aplicação ou posteriormente nos modelos de classe. Já a opção de gravar comandos SQL executados deve ser definida na instalação da aplicação ou diretamente no arquivo de configuração dos logs.

Modelo de controle de logs

  • system_access_log: Armazena logs de acesso (login e logout da aplicação).

  • system_sql_log: Armazena logs de SQL (comandos de insert, update e delete).

  • system_change_log: Armazena logs de mudanças de registros (troca de valores em tabelas).

4.4 Modelagem relacional

4.4.1 Novo modelo

O link Novo modelo posicionado no menu lateral esquerdo, exibe um popup, onde deverá ser informado o nome do modelo, nome do banco de dados e o tipo de banco, respectivamente. Para acessar o modelo criado basta clicar em abrir na lista de modelos do projeto em questão.

Novo modelo pop-up

4.4.2 Diagramador ER

O diagramador exibirá uma página em branco onde deverá ser realizada a modelagem de entidades de relacionamento da aplicação. Funções básicas como zoom in e out, fazer e desfazer estão dispostas no topo da página.

Dentro do diagramador é possível criar as entidades de forma automática através de um script de criação de banco de dados, basta clicar no botão importar e informar as instruções SQL.

Algumas páginas dentro do Adianti Builder exigem um certo padrão nos atributos da tabela relacionada, por exemplo, páginas do tipo calendário precisam possuir certos atributos pré estabelecidas. Para facilitar a modelagem o diagramador oferece o template de algumas entidades.

Diagramador ER

4.4.3 Criar entidades

Existem duas maneiras para criar uma entidade dentro do diagramador, clicando com o botão direito do mouse na área de modelagem ou selecionando no botão de adicionar tabela posicionado no menu lateral esquerdo, após sua adição basta informar seu nome.

4.4.4 Opções das entidades

Da esquerda para direita,cima para baixo.

  1. Inserir dados: Esta opção permite pré-cadastrar dados para à aplicação. Esses dados poderão ser utilizados na criação de páginas como filtros por exemplo.

  2. Minhas páginas: Exibe uma lista contendo as páginas já criadas para essa entidade (listagens, formulários, desenhos, etc).

  3. Nova página: Lista com os tipos de páginas disponíveis para criação.

  4. Deletar: Excluir a entidade selecionada.

  5. Adicionar coluna: Adicionar uma coluna na entidade selecionada.

  6. Propriedades: Opções que serão aplicadas no modelo de classe.

Criar entidade

4.4.5 Chaves entre diagramas.

Chaves entre diagramas não são foreign keys (chaves estrangerias), elas criam ligações entre tabelas de diagramas diferentes que podem estar em bancos de dados diferentes.

Um exemplo comum de uso de chave entre diagramas seria buscar o nome do vendedor que realizou uma venda. O nome do vendedor estaria na tabela sys_users dentro do diagrama de permissões enquanto a tabela de vendas normalmente estaria no banco de dados da aplicação, logo em bancos de dados diferentes. Mesmo estando em bancos diferentes, o Builder permite conectar as informações, permitindo exibir por exemplo, o nome do vendedor em uma listagem de vendas. Para habilitar este comportamento, é necessário estabelecer uma chave entre diagramas. Com está ligação o Adianti Builder poderá sugerir o nome do vendedor, não somente a chave estrangeira, quando uma página que usa a tabela de vendas for criada.

Chave estrangeria entre bancos

4.4.6 Manipular colunas

Para criar uma coluna dentro de uma entidade basta clicar no ícone + (Adicionar coluna), após isso aparecerá um formulários para preenchimento das informações.

Adicionar coluna

Os dois campos da primeira linha são respectivamente o nome da coluna da tabela no banco de dados e seu tipo.

A segunda linha do formulário contém a informação do tamanho máximo do campo no banco de dados, e valor padrão para novos registros.

Na terceira linha está o campo Rótulo, nele será definido a informação que o Adianti Builder irá usar como rótulo na criação de diversas páginas, como rótulos de campos para formulários, ou títulos de colunas para datagrids.

Um exemplo seria, a coluna descricao teria como rótulo "Descrição" e quando uma página for criada usando como base essa entidade, automaticamente o rótulo da coluna descricao estará correto. Pode-se adicionar limitações para o atributo criado:

Sigla Significado
NN Not null, o campo não aceitará valores vazios.
UQ Unique, o valor definido no campo deve ser único dentro da entidade.
AI Auto increment, valor sequencial.

Para editar um atributo, basta clicar duas vezes sobre o elemento desejado.

Para deletar um atributo basta clicar sobre a lixeira que aparecerá ao deixar o cursor do mouse sobre a linha desejada.

4.4.7 Coluna visualizável

É possível definir uma coluna por tabela de um diagrama como "Coluna visualizável", isso significa que em uma relação entre tabelas o Builder exibirá o valor desse campo ao invés da chave estrangeira.

Coluna visualizável

No exemplo acima a coluna descricao da tabela categoria está definida como coluna visualizável, portanto quando uma página for criada utilizando a tabela produto não será exibido o valor da chave estrangeria categoria_id. O Builder automaticamente encontrará a ligação entre as tabelas e irá sugeria o campo descricao (categoria->descriaco) da tabela categoria como valor a ser exibido.

4.5 Múltiplos diagramas no mesmo modelo de dados

O Adianti Builder oferece a possibilidade de segmentar um mesmo modelo de dados em varias partes específicas, essas partes são chamadas de diagramas. Os diagramas são uma separação do modelo em si, ou seja, mesmo criando diversos diagramas estaremos sempre trabalhando na mesma base de dados.

Atenção: No momento de criação de base de dados todos os diagramas, do mesmo modelo de dados, vão formar uma mesma base de dados.

Ao criar um modelo de dados, ele virá com um diagrama padrão chamado de Principal. Ao criar o modelo de dados o desenvolvedor poderá adicionar e remover quantos diagramas ele quiser. A vantagem de usar diagramas dentro de um modelo de dados é que ao segmentar a estrutura o desenvolvedor não estará trabalhando com um mega diagrama.

Para adicionar um ou mais diagramas basta clicar no botão com ícone de mais localizado na parte superior do diagramador, conforme visto na imagem a seguir:

Adicionar diagrama

4.5.1 Reutilizar tabelas

Ao trabalhar com mais de um diagrama, pode surgir a necessidade de usar a mesma tabela em um segundo diagrama. Um exemplo seria, uma aplicação com dois módulos: inscrição em eventos e sua avaliação, nos dois teríamos a entidade evento. Ao segmentar o modelo de dados em dois diagramas podemos criar uma vez a tabela evento e reutiliza-lá quantas vezes for necessário.

Para reutilizar uma tabela em outro diagrama, basta acessar um onde ela ainda não foi inserida, localizar a tabela desejada no menu lateral de tabelas, clicar em seu nome e arrastar para a área de modelagem. Desta maneira a mesma tabela fará parte de dois diagramas diferentes, tornando a modelagem mais segmentada e organizada.

É possível ocultar as tabelas dos diagramas, para isso basta clicar com o botão direito em cima da tabela desejada e selecionar a opção Remover do diagrama. Realizando esse processo todas as ligações da tabela oculta continuam valendo e ao adicioná-la novamente também exibirá suas ligações.

Remover do diagrama

4.6 Busca e manipulação de tabelas

Um problema comum em aplicações mais robustas é que seu modelo de dados fica mais extenso. Segmentá-lo com diagramas é uma maneira fácil de organizar o projeto, no entanto, ainda assim é difícil de procurar uma tabela em vários locais. Para resolver esse problema, o menu lateral do modelador de modelos de dados do Adianti Builder, conta agora com uma busca de tabela. Basta digitar o nome da entidade desejada, que um filtro será aplicado sobre a lista de tabelas do modelo.

Filtro de tabelas

Além da busca de tabelas, o menu lateral também permite algumas manipulações nas entidades do modelo de dados. Ao expandir o item da tabela em questão é possível adicionar ou alterar colunas, chaves estrangeiras e chaves entre diagramas.

Manipular tabela