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
- Cria-se um registro em
producerscom todos os dados pessoais e de localização - O sistema gera automaticamente os timestamps de criação
Passo 2: Configuração da Infraestrutura
- Registram-se os tipos de solo disponíveis em
soil_types - Catalogam-se os sistemas de irrigação em
irrigation_types - O produtor define suas áreas de cultivo em
areas
Passo 3: Planejamento das Safras
- Cria-se uma nova safra em
harvestscom ciclo e datas estimadas - Definem-se os produtos a cultivar em
products
Passo 4: Execução dos Plantios
- Para cada área e produto, criam-se registros em
plantings - Registram-se datas reais de plantio e quantidades
- Atualizam-se as datas de colheita esperadas
Passo 5: Acompanhamento e Colheita
- Atualizam-se as quantidades colhidas em
plantings - Modifica-se o status das safras em
harvests - O sistema mantém rastreabilidade completa do processo
Métricas e Análises Disponíveis
Produtividade:
- Comparação
quantityPlantedvsquantityHarvestedpor 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
