|
|
|
## Descrição Geral do Sistema
|
|
|
|
|
|
|
|
Este banco de dados foi projetado para gerenciar operações agrícolas completas, desde o cadastro de produtores rurais até o acompanhamento detalhado de plantios e colheitas. O modelo permite rastreabilidade completa do processo produtivo agrícola.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Esquema do Banco de Dados - Análise Detalhada
|
|
|
|

|
|
|
|
### **TABELA: producers** (Produtores Rurais)
|
|
|
|
**Propósito**: Armazena informações completas dos agricultores ou empresas produtoras.
|
|
|
|
|
|
|
|
**Estrutura e Campos**:
|
|
|
|
- `id` (SERIAL) - Identificador único do produtor (Chave Primária)
|
|
|
|
- `name` (VARCHAR(255)) - Nome completo ou razão social do produtor
|
|
|
|
- `document` (VARCHAR(20)) - Documento de identificação (CPF/CNPJ)
|
|
|
|
- `phone` (VARCHAR(20)) - Telefone de contato
|
|
|
|
- `email` (VARCHAR(255)) - E-mail
|
|
|
|
- `zipCode` (VARCHAR(20)) - CEP da localização
|
|
|
|
- `city` (VARCHAR(180)) - Cidade de residência/operação
|
|
|
|
- `street` (VARCHAR(255)) - Endereço
|
|
|
|
- `number` (VARCHAR(20)) - Número do endereço
|
|
|
|
- `complement` (VARCHAR(255)) - Complemento do endereço
|
|
|
|
- `createdAt` (TIMESTAMP) - Data e hora de criação do registro
|
|
|
|
- `updatedAt` (TIMESTAMP) - Data e hora da última atualização
|
|
|
|
|
|
|
|
**Relacionamentos**:
|
|
|
|
- Um produtor pode ter múltiplos produtos (`products`)
|
|
|
|
- Um produtor pode gerenciar múltiplas safras (`harvests`)
|
|
|
|
- Um produtor pode possuir múltiplas áreas de cultivo (`areas`)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
### **TABELA: products** (Produtos Agrícolas)
|
|
|
|
**Propósito**: Cataloga os diferentes tipos de culturas ou produtos que podem ser cultivados.
|
|
|
|
|
|
|
|
**Estrutura e Campos**:
|
|
|
|
- `id` (SERIAL) - Identificador único do produto
|
|
|
|
- `name` (VARCHAR(180)) - Nome do produto (milho, soja, trigo, etc.)
|
|
|
|
- `producerId` (INT) - Referência ao produtor dono do produto
|
|
|
|
- `createdAt` (TIMESTAMP) - Timestamp de criação
|
|
|
|
- `updatedAt` (TIMESTAMP) - Timestamp de atualização
|
|
|
|
|
|
|
|
**Relacionamentos**:
|
|
|
|
- Pertence a um produtor (`producers`)
|
|
|
|
- Pode ser plantado em múltiplas ocasiões (`plantings`)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
### **TABELA: harvests** (Safras)
|
|
|
|
**Propósito**: Gerencia os ciclos de safra ou temporadas agrícolas.
|
|
|
|
|
|
|
|
**Estrutura e Campos**:
|
|
|
|
- `id` (SERIAL) - Identificador único da safra
|
|
|
|
- `name` (VARCHAR(180)) - Nome descritivo da safra
|
|
|
|
- `cycle` (VARCHAR(50)) - Ciclo ou temporada (ex: "2024-Verão")
|
|
|
|
- `startDate` (DATE) - Data de início do ciclo
|
|
|
|
- `endDate` (DATE) - Data de finalização estimada
|
|
|
|
- `status` (harvest_status) - Status atual (provavelmente ENUM: planned, in_progress, completed, cancelled)
|
|
|
|
- `producerId` (INT) - Produtor associado à safra
|
|
|
|
- `createdAt` (TIMESTAMP) - Data de criação
|
|
|
|
- `updatedAt` (TIMESTAMP) - Data de atualização
|
|
|
|
|
|
|
|
**Relacionamentos**:
|
|
|
|
- Pertence a um produtor (`producers`)
|
|
|
|
- Contém múltiplos plantios (`plantings`)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
### **TABELA: areas** (Áreas de Cultivo)
|
|
|
|
**Propósito**: Gerencia os talhões ou terrenos específicos onde são realizados os cultivos.
|
|
|
|
|
|
|
|
**Estrutura e Campos**:
|
|
|
|
- `id` (SERIAL) - Identificador único da área
|
|
|
|
- `name` (VARCHAR(255)) - Nome descritivo da área
|
|
|
|
- `polygon` (GEOMETRY) - Dados geométricos que definem o formato da área
|
|
|
|
- `areaM2` (DECIMAL(65,30)) - Superfície total em metros quadrados
|
|
|
|
- `color` (VARCHAR(10)) - Cor para representação visual em mapas
|
|
|
|
- `producerId` (INT) - Produtor proprietário da área
|
|
|
|
- `soilTypeId` (INT) - Tipo de solo (FK para soil_types)
|
|
|
|
- `irrigationTypeId` (INT) - Tipo de sistema de irrigação (FK para irrigation_types)
|
|
|
|
- `isActive` (BOOLEAN) - Indicador de área ativa/inativa
|
|
|
|
- `description` (TEXT) - Descrição adicional da área
|
|
|
|
- `createdAt` (TIMESTAMP) - Data de criação
|
|
|
|
- `updatedAt` (TIMESTAMP) - Data de atualização
|
|
|
|
|
|
|
|
**Relacionamentos**:
|
|
|
|
- Pertence a um produtor (`producers`)
|
|
|
|
- Tem um tipo de solo específico (`soil_types`)
|
|
|
|
- Utiliza um tipo de irrigação (`irrigation_types`)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
### **TABELA: AreaToPlanting** (Relação Área-Plantio)
|
|
|
|
**Propósito**: Tabela de relacionamento entre áreas e plantios (provável tabela associativa).
|
|
|
|
|
|
|
|
**Estrutura e Campos**:
|
|
|
|
- `A` (INT) - Possível referência à área ou coordenada
|
|
|
|
- `B` (INT) - Possível referência ao plantio ou coordenada
|
|
|
|
|
|
|
|
**Observação**: Esta tabela precisa de melhor definição de propósito e campos.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
### **TABELA: soil_types** (Tipos de Solo)
|
|
|
|
**Propósito**: Catálogo de classificações de solo para caracterizar as áreas de cultivo.
|
|
|
|
|
|
|
|
**Estrutura**:
|
|
|
|
- `id` (SERIAL) - Identificador único do tipo de solo
|
|
|
|
- `name` (VARCHAR(180)) - Nome do tipo (argiloso, arenoso, etc.)
|
|
|
|
- `description` (TEXT) - Características e propriedades do solo
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
### **TABELA: irrigation_types** (Tipos de Irrigação)
|
|
|
|
**Propósito**: Catálogo de sistemas de irrigação disponíveis.
|
|
|
|
|
|
|
|
**Estrutura**:
|
|
|
|
- `id` (SERIAL) - Identificador único do tipo de irrigação
|
|
|
|
- `name` (VARCHAR(180)) - Nome do sistema (gotejamento, aspersão, etc.)
|
|
|
|
- `description` (TEXT) - Descrição do método de irrigação
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
### **TABELA: plantings** (Plantios)
|
|
|
|
**Propósito**: Registra as instâncias específicas de cultivo dentro das safras.
|
|
|
|
|
|
|
|
**Estrutura e Campos**:
|
|
|
|
- `id` (SERIAL) - Identificador único do plantio
|
|
|
|
- `name` (VARCHAR(255)) - Nome descritivo da cultura
|
|
|
|
- `plantingDate` (DATE) - Data real do plantio
|
|
|
|
- `plantingEndDate` (DATE) - Data de finalização do plantio
|
|
|
|
- `expectedHarvestDate` (DATE) - Data estimada da colheita
|
|
|
|
- `quantityPlanted` (FLOAT) - Quantidade plantada (unidades/hectares)
|
|
|
|
- `quantityHarvested` (FLOAT) - Quantidade realmente colhida
|
|
|
|
- `harvestId` (INT) - Safra à qual pertence
|
|
|
|
- `productId` (INT) - Produto que está sendo cultivado
|
|
|
|
- `createdAt` (TIMESTAMP) - Data de criação
|
|
|
|
- `updatedAt` (TIMESTAMP) - Data de atualização
|
|
|
|
|
|
|
|
**Relacionamentos**:
|
|
|
|
- Pertence a uma safra (`harvests`)
|
|
|
|
- Cultiva um produto específico (`products`)
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Fluxo de Operações do Sistema
|
|
|
|
|
|
|
|
### **Passo 1: Cadastro do Produtor**
|
|
|
|
1. Cria-se um registro em `producers` com todos os dados pessoais e de localização
|
|
|
|
2. O sistema gera automaticamente os timestamps de criação
|
|
|
|
|
|
|
|
### **Passo 2: Configuração da Infraestrutura**
|
|
|
|
1. Registram-se os tipos de solo disponíveis em `soil_types`
|
|
|
|
2. Catalogam-se os sistemas de irrigação em `irrigation_types`
|
|
|
|
3. O produtor define suas áreas de cultivo em `areas`
|
|
|
|
|
|
|
|
### **Passo 3: Planejamento das Safras**
|
|
|
|
1. Cria-se uma nova safra em `harvests` com ciclo e datas estimadas
|
|
|
|
2. Definem-se os produtos a cultivar em `products`
|
|
|
|
|
|
|
|
### **Passo 4: Execução dos Plantios**
|
|
|
|
1. Para cada área e produto, criam-se registros em `plantings`
|
|
|
|
2. Registram-se datas reais de plantio e quantidades
|
|
|
|
3. Atualizam-se as datas de colheita esperadas
|
|
|
|
|
|
|
|
### **Passo 5: Acompanhamento e Colheita**
|
|
|
|
1. Atualizam-se as quantidades colhidas em `plantings`
|
|
|
|
2. Modifica-se o status das safras em `harvests`
|
|
|
|
3. O sistema mantém rastreabilidade completa do processo
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
## Métricas e Análises Disponíveis
|
|
|
|
|
|
|
|
### **Produtividade**:
|
|
|
|
- Comparação `quantityPlanted` vs `quantityHarvested` por produtor/safra
|
|
|
|
- Eficiência por tipo de solo e sistema de irrigação
|
|
|
|
|
|
|
|
### **Planejamento**:
|
|
|
|
- Acompanhamento de datas estimadas vs reais
|
|
|
|
- Análise de ciclos de cultivo
|
|
|
|
|
|
|
|
### **Gestão de Terrenos**:
|
|
|
|
- Distribuição de áreas ativas/inativas
|
|
|
|
- Otimização de uso do solo por produtor
|
|
|
|
|
|
|
|
--- |