Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • aiprodutor-wiki aiprodutor-wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Ai Produtor Sistema de Cadastro e Gestao de Produtores de Hortifrutie
  • aiprodutor-wikiaiprodutor-wiki
  • Wiki
  • banco_dados

Last edited by Isadora Santos Da Silva Oct 11, 2025
Page history
This is an old version of this page. You can view the most recent version or browse the history.

banco_dados

🗂 Estrutura Geral

O banco de dados foi projetado para gerenciar informações de produtores, áreas de plantio, produtos, variedades, tipos de solo, irrigação, plantios e safras.

A modelagem garante rastreabilidade desde o produtor até a safra colhida.


📑 Tabelas

image

1. produtores

Armazena informações sobre os produtores rurais.

Campo Tipo Descrição
id SERIAL (PK) Identificador único
nome VARCHAR(255) Nome do produtor
cpf_cnpj VARCHAR(20) Documento do produtor
telefone VARCHAR(20) Contato
email VARCHAR(255) Email do produtor
endereco TEXT Endereço completo
criado_em TIMESTAMP Data de criação do registro

2. areas_plantio

Representa as áreas de plantio vinculadas a um produtor.

Campo Tipo Descrição
id SERIAL (PK) Identificador único
produtor_id INTEGER (FK) Referência para produtores
nome VARCHAR(255) Nome da área
tipo_solo_id INTEGER (FK) Referência para tipo_solo
tipo_irrigacao_id INTEGER (FK) Referência para tipo_irrigacao
tipo_cultivo VARCHAR(100) Cultura plantada (ex: soja, milho)
poligono_geo geometry(Polygon,4326) Representação espacial da área
ativo BOOLEAN Indica se a área está ativa
criado_em TIMESTAMP Data de criação do registro

3. tipo_solo

Define os tipos de solo possíveis.

Campo Tipo Descrição
id SERIAL (PK) Identificador único
nome VARCHAR(100) Nome do tipo de solo
descricao TEXT Detalhes adicionais

4. tipo_irrigacao

Define os métodos de irrigação utilizados.

Campo Tipo Descrição
id SERIAL (PK) Identificador único
nome VARCHAR(100) Nome do tipo de irrigação
descricao TEXT Detalhes adicionais

5. produtos

Lista os produtos agrícolas cadastrados.

Campo Tipo Descrição
id SERIAL (PK) Identificador único
nome VARCHAR(100) Nome do produto
criado_em TIMESTAMP Data de criação do registro

6. variedades

Armazena variedades específicas de cada produto.

Campo Tipo Descrição
id SERIAL (PK) Identificador único
produto_id INTEGER (FK) Referência para produtos
nome VARCHAR(100) Nome da variedade
criado_em TIMESTAMP Data de criação do registro

7. plantios

Representa os plantios realizados em determinada área.

Campo Tipo Descrição
id SERIAL (PK) Identificador único
area_id INTEGER (FK) Referência para areas_plantio
produto_id INTEGER (FK) Referência para produtos
variedade_id INTEGER (FK) Referência para variedades
data_plantio DATE Data do plantio
previsao_colheita DATE Data estimada da colheita
data_colheita DATE Data efetiva da colheita
quantidade_plantada DECIMAL Quantidade plantada
quantidade_colhida DECIMAL Quantidade colhida
criado_em TIMESTAMP Data de criação do registro

8. safras

Controla os ciclos de safras relacionados aos plantios.

Campo Tipo Descrição
id SERIAL (PK) Identificador único
plantio_id INTEGER (FK) Referência para plantios
ciclo VARCHAR(50) Nome do ciclo (ex: 2024/2025)
status VARCHAR(50) Situação da safra (ativo, colhido, etc.)
criado_em TIMESTAMP Data de criação do registro

🔗 Relacionamentos

  • 1 Produtor → N Áreas de Plantio
  • 1 Área de Plantio → N Plantios
  • 1 Produto → N Variedades
  • 1 Plantio → 1 Safra
  • Áreas de Plantio estão vinculadas a tipo de solo e tipo de irrigação.

🌍 Integração com PostGIS

A tabela areas_plantio possui o campo poligono_geo do tipo geometry(Polygon, 4326), que permite armazenar os limites geográficos das áreas em coordenadas WGS84.

Benefícios

  • Armazenamento de áreas reais de plantio.
  • Cálculo de área e perímetro.
  • Identificação de sobreposição de áreas.
  • Consulta de proximidade entre áreas.
  • Integração com sistemas de mapas (Leaflet, Mapbox, QGIS, etc.).

Exemplos de uso

Inserindo uma área poligonal

INSERT INTO areas_plantio (
    produtor_id, nome, tipo_solo_id, tipo_irrigacao_id, tipo_cultivo, poligono_geo, ativo, criado_em
) VALUES (
    1,
    'Área Leste',
    2,
    1,
    'Soja',
    ST_GeomFromText(
        'POLYGON((-51.23 -30.01, -51.22 -30.01, -51.22 -30.00, -51.23 -30.00, -51.23 -30.01))',
        4326
    ),
    TRUE,
    NOW()
);

Consultando a área em hectares

SELECT 
    ST_Area(poligono_geo::geography)/10000 AS hectares
FROM areas_plantio;

Verificando sobreposição entre áreas

SELECT a1.id, a2.id
FROM areas_plantio a1, areas_plantio a2
WHERE a1.id <> a2.id
  AND ST_Intersects(a1.poligono_geo, a2.poligono_geo);

Calculando distância entre duas áreas

SELECT 
    a1.id AS area1,
    a2.id AS area2,
    ST_Distance(a1.poligono_geo::geography, a2.poligono_geo::geography) AS distancia_metros
FROM areas_plantio a1, areas_plantio a2
WHERE a1.id = 1 AND a2.id = 2;

📌 Conclusão

Esta modelagem fornece uma base sólida para o gerenciamento de informações agrícolas, com suporte a dados espaciais via PostGIS, possibilitando análises avançadas e integração com sistemas de geolocalização.

Clone repository

📚 Wiki

🏠 Home 🔸Descrição do Projeto
🔸Sumário
🔸Equipe
📋 Escopo
🏗️ Arquitetura
🛠️ Configuração
🎨 Mockups
🗄️ Banco de Dados
📊 Gerência 🔸Termo de abertura do projeto
🔸Estrutura analítica de projeto (EAP)
🔸Cronograma
🔸Plano de comunicação
🔸Matriz de responsabilidades
🔸Plano de riscos
✅ Qualidade
🔄 Processo 🔸Papeis
🔸Sprints
🔸Apresentações
🔸Artefatos
🔸Acompanhamento das Entregas