Banco de Dados — Firebird
Banco de dados central compartilhado por todas as plataformas do ecossistema.
Stack
| Item | Detalhe |
|---|---|
| SGBD | Firebird |
| Acesso (Delphi) | FireDAC (migrado de BDE) |
| Acesso (Java) | JDBC |
| Procedures | SQL (corpo em Scripts/*.sql) |
| DDL das tabelas | docs/schema/tables/<TABELA>.sql |
| Documentação semântica | docs/schema/metadata/<OBJETO>.md |
| Índice de objetos | docs/schema/INDEX.md |
Acesso por Plataforma
| Plataforma | Método | Detalhes |
|---|---|---|
| Desktop Delphi | FireDAC direto | TFDConnection, TFDQuery — sem ORM |
| APIs Java | JDBC | Spring Data / JDBC Template |
| Portal Web | Indireto via PortalWebAPI | HTTP → JDBC |
| Mobile | Indireto via APIs | HTTP → JDBC |
Objetos do Banco
Documentação em docs/schema/:
docs/schema/
├── INDEX.md ← Índice de todos os objetos documentados
├── tables/ ← DDL (CREATE TABLE)
│ └── <TABELA>.sql
└── metadata/ ← Documentação semântica
└── <OBJETO>.md
Antes de criar queries ou módulos: sempre consultar docs/schema/INDEX.md para verificar nomes reais de colunas e tipos.
Stored Procedures
Localização: Scripts/*.sql
Corpo completo de todas as stored procedures. São executadas pelo Firebird e chamadas tanto pelo Delphi quanto pelas APIs Java.
Tabelas por Domínio de Negócio
| Domínio | Exemplos de Tabelas |
|---|---|
| Financeiro | TITULOSPAGAR, TITULOSRECEBER, PARCELAMENTOS |
| Faturamento | NOTAFISCAL, ITENSNOTA, VENDAS |
| Pedidos | PEDIDOS, ITENSPEDIDO |
| Estoque | ESTOQUE, MOVESTOQUE |
| Fiscal | SPED, REGISTROSFISCAIS |
| Equipamentos | ORDEMSERVICO, EQUIPAMENTOS |
| Cadastros | PESSOAS, EMPRESAS, USUARIOS |
| Sistema | ACESSO, LISTAVALOR, PARAMETROS |
Tabela LISTAVALOR
Tabela especial usada pelo jPesquisa como lookup universal. Quase todos os módulos BPL dependem dela para buscas e dropdowns.
Tabela ACESSO
Controla permissões de usuários por módulo.
- Configurada no Desktop Delphi (módulo ADM)
- Respeitada pelas APIs Java via validação JWT
Manutenção do Schema
- Scripts de migração: executados via
Junisql.exe(emdist/Utilitarios/) - Geração de bases:
source/GeradorBases/— Delphi standalone - Sincronização: não há ORM — DDL é mantido manualmente