A concepção de uma base de dados para aplicações raramente está completa sem criar relações entre tabelas. O editor da base de dados AppMaster permite-lhe fazer tal relação num simples movimento. Basta desenhar uma linha de ligação entre tabelas e depois seleccionar o tipo de relação (um para um, um para muitos, muitos para muitos) e, se necessário, os nomes dos campos. Mas e se a tabela tiver de se referir a si própria?

Vamos analisar a situação quando for necessário manter um determinado registo de registos. Ao mesmo tempo, está organizado de tal forma que os registos são criados estritamente numa cadeia. Cada entrada deve estar ligada à entrada anterior e posterior (excepto a primeira e última entradas, claro). Assim, toda a cadeia pode ser rastreada para cada registo individual, e o sistema recebe protecção adicional contra alterações não autorizadas.

Concepção da base de dados

Primeiro, precisamos de criar o próprio modelo no desenhador da base de dados. Vamos nomeá-lo Journal e acrescentar um campo de texto, record.

O passo seguinte é criar uma ligação. Para o fazer, clique com o botão direito do rato em qualquer parte da tela e seleccione Create relation.

O passo seguinte é estabelecer a ligação. Para o fazer, é necessário seleccionar o mesmo modelo que Source e Target (neste caso, Journal), definir os nomes dos campos (next e previous), e o tipo de ligação (has_one).

A configuração da tabela de auto-referência está completa. É possível começar a criar o design de front-end e os processos empresariais.

Criação do processo de negócio

Vamos criar um processo comercial backend para adicionar novas entradas à revista. Receberá o texto da nova entrada como um parâmetro de entrada. Isto irá procurar na base de dados o último registo para o associar ao novo registo. Para pesquisar, pode definir _Limit = 1 (porque só é necessário um último registo), o que será suficiente uma vez que, por defeito, os registos serão ordenados por identificação e emitidos pela ordem em que foram adicionados à base de dados, começando com o último registo.

O resultado da pesquisa será uma matriz constituída por um elemento. Precisamos de o extrair utilizando o Array Element bloco com index 0 e formar uma nova entrada no diário (Make Journal). O último passo é apenas escrever para a base de dados (DB: Create Journal) e completar o processo comercial.

Este processo de negócio pode ser utilizado para o ponto final padrão para criar novos registos de base de dados.

Desenho de Front-end

Para o front-end de uma aplicação web, é suficiente adicionar três elementos à página.

  1. Campo de texto para introduzir o conteúdo da nova entrada
  2. Botão para adicionar uma entrada
  3. Tabela para mostrar todas as entradas.

Para o botão "ADD Journal Record", também é necessário criar um processo comercial simples. Ao clicar no botão, o texto do campo de entrada deve ser enviado para o ponto final para criar novos registos, e outro botão deve ser clicado para actualizar o conteúdo da tabela como a última acção.

Para a tabela em si, vale também a pena criar processos de negócio, mas nesta lição, não vamos deter-nos nisto. Toda a informação necessária pode ser encontrada na lição sobre a criação de tabelas. Só vale a pena notar que, ao obter dados, é necessário especificar o _with o parâmetro para obter dados de tabelas relacionadas (apesar do facto de, no nosso caso, a tabela estar relacionada consigo mesma).

Podemos publicar a aplicação, adicionar algumas entradas, e verificar que tudo funciona correctamente. Cada entrada está realmente relacionada com entradas na mesma tabela. Por exemplo, para uma entrada com ID 3, existe uma ligação à entrada anterior (ID 2) e à entrada seguinte (ID 4).

Was this article helpful?

AppMaster.io 101 Curso de Crash

10 Módulos
2 Semanas

Não sabe por onde começar? Avance com o nosso curso intensivo para principiantes e explore o AppMaster de A a Z.

Iniciar curso
Development it’s so easy with AppMaster!

Precisa de mais ajuda?

Resolva qualquer problema com a ajuda de nossos especialistas. Economize tempo e concentre-se na criação de seus aplicativos.

headphones

Entre em contato com o suporte

Conte-nos sobre o seu problema, e nós encontraremos uma solução para você.

message

Bate-papo da comunidade

Discuta perguntas com outros usuários em nosso chat.

Junte-se à comunidade