Ir diretamente para o conteúdo

Como associar vários registos a um elemento

É frequente que se tenha um conjunto de elementos espaciais e se queira registar o seu estado de vez em quando.

Por exemplo, existe uma camada SIG que representa as caixas de inspeção e os topógrafos realizam inspeções regulares dessas caixas utilizando Mergin Maps. Em vez de duplicar a camada das caixas de inspeção e registar cada inspeção como um novo elemento, as inspeções podem ser registadas numa tabela não espacial que esteja ligada à camada espacial. Desta forma, vários registos podem ser associados a um único elemento, numa relação de um para muitos.

A imagem abaixo mostra a localização das caixas de inspeção e um formulário com a lista de inspeções na aplicação móvel «Mergin Maps ».

Várias inspeções associadas a um único ponto na aplicação móvel « Mergin Maps »

Projeto de exemplo disponível

Clona o nosso projeto público Mergin Maps Documentação do projeto/formulários_relações-um-para-muitosdocumentação/formulários_relações-um-para-muitos para seguir esta configuração. O projeto inclui uma amostra de dados.

A camada de pontos de caixas de inspeção possui a seguinte tabela de atributos:

fidBueiroUUID da câmara de inspeção (uuid)
11{db908450-4265-4070-a3f7-1d73705df8bf}
22{aeea4c7d-e7c5-4638-8207-53fa469ccddd}
33{042a715a-73ac-4bff-9bb0-7f598d216ec9}

Esta camada contém apenas informações sobre as caixas de inspeção. UUID da câmara de inspeção (uuid) são valores únicos gerados utilizando o uuid() função quando é criado um elemento. Este campo será utilizado para associar inspeções e caixas de visita.

Utilização do UUID

Porquê o UUID? O FID pode ser alterado durante a sincronização. Consequentemente, os registos podem acabar por ficar associados a elementos errados.

Por outro lado, QGIS DocumentaçãoUUID (Identificador Universalmente Único) é gerado de forma a ser único e não será alterado durante a sincronização. Por isso, recomendamos que se utilize sempre o UUID para associar camadas.

O tabela de inspeções não espaciais possui os seguintes atributos. UUID da câmara de inspeção (uuid-pai) são referências a bueiros.

fidDataBloqueado?Inundado?InspetorUUID da câmara de inspeção (uuid-pai)
820 de novembro de 2025falsefalseJoe Schmoe{db908450-4265-4070-a3f7-1d73705df8bf}
928 de novembro de 2025falseverdadeiroFred Bloggs{db908450-4265-4070-a3f7-1d73705df8bf}
1001/12/2025verdadeiroverdadeiroFred Bloggs{aeea4c7d-e7c5-4638-8207-53fa469ccddd}
113 de dezembro de 2025falsefalseJoe Schmoe{042a715a-73ac-4bff-9bb0-7f598d216ec9}

Para configurar relações 1-N no « QGIS » (os passos detalhados podem ser consultados em «Relações»):

  1. No menu principal, selecione Projetos > Propriedades...

  2. No separador «Relações », selecione «Adicionar relação»

  3. Defina as camadas «pai» e «filho» e os campos para ligar as duas camadas:

    • Nome é o nome da relação, por exemplo, Inspeção
    • Referenciado (pai) é a camada espacial localizações_de_bueiros
    • Campo 1 do Referenciado (pai) é o campo UUID da câmara de inspeção que contém o único UUID
    • Referência (filho) é a camada não espacial inspeções
    • Campo 1 do Referência (filho) a camada é a UUID da câmara de inspeção, que funciona como uma chave estrangeira para associar as inspeções a elementos espaciais

    Adicionar um formulário de relação no « QGIS », com uma relação 1-N definida entre a camada pai e a camada filho

  4. Aceda à Formulário de atributos separador em «Camada» Características da camada de levantamento (localizações_de_bueiros)

  5. Adicione o Inspeções no que diz respeito ao Disposição do formulárioRelação adicionada ao layout do formulário «Arrastar e Soltar» em QGIS

Agora já é possível adicionar várias inspeções para cada localização de poço de inspeção. Os registos das inspeções serão armazenados no inspeções tabela.

Quando abre o formulário de um registo existente no localizações_de_bueiros camada de pontos; irão ser apresentados os registos de inspeção existentes e poderá também adicionar, eliminar ou editar os registos: Visualização do formulário de um elemento com uma relação 1-N em QGIS

Na aplicação móvel, o formulário irá apresentar todos os registos de inspeção associados. Ao tocar no botão +, abre-se o formulário de inspeção e é possível adicionar um novo registo de inspeção.

Vista de formulário de um elemento com uma relação 1-N na aplicação móvel « Mergin Maps »