Dicionário de Dados
Nesta seção é apresentado o dicionário de dados do banco de dados do sistema ReMed.io, fornecendo detalhes sobre as tabelas, campos e relacionamentos utilizados no sistema.
Sumário
Tabela armazem
| Campo |
Tipo |
PK |
FK |
Nullable |
Descrição |
| id |
SERIAL |
✔️ |
|
❌ |
ID do armazém |
| local_armazem |
VARCHAR(100) |
|
|
❌ |
Localização do armazém (único) |
Tabela fornecedor
| Campo |
Tipo |
PK |
FK |
Nullable |
Descrição |
| id |
SERIAL |
✔️ |
|
❌ |
ID do fornecedor |
| nome |
VARCHAR(100) |
|
|
❌ |
Nome do fornecedor |
| cnpj |
VARCHAR(20) |
|
|
❌ |
CNPJ do fornecedor |
| contato |
VARCHAR(100) |
|
|
✔️ |
Contato (telefone/email) |
Tabela funcionario
| Campo |
Tipo |
PK |
FK |
Nullable |
Descrição |
| id |
SERIAL |
✔️ |
|
❌ |
ID do funcionário |
| nome |
VARCHAR(50) |
|
|
❌ |
Nome completo |
| cpf |
VARCHAR(11) |
|
|
❌ |
CPF (único) |
| email |
VARCHAR(100) |
|
|
❌ |
Email (único) |
| senha_hash |
VARCHAR(255) |
|
|
❌ |
Hash da senha |
| cargo |
VARCHAR(50) |
|
|
❌ |
Cargo ou função |
| data_contratacao |
TIMESTAMP |
|
|
❌ |
Data da contratação |
Tabela medicamento
| Campo |
Tipo |
PK |
FK |
Nullable |
Descrição |
| id |
SERIAL |
✔️ |
|
❌ |
ID do medicamento |
| nome |
VARCHAR(100) |
|
|
❌ |
Nome do medicamento |
| descricao |
VARCHAR(255) |
|
|
✔️ |
Descrição |
| dosagem |
VARCHAR(50) |
|
|
✔️ |
Dosagem (ex 500mg) |
| principio_ativo |
VARCHAR(100) |
|
|
✔️ |
Princípio ativo |
| tarja |
VARCHAR(50) |
|
|
✔️ |
Cor da tarja |
| necessita_receita |
BOOLEAN |
|
|
❌ |
Se exige receita |
| forma_farmaceutica |
VARCHAR(50) |
|
|
✔️ |
Forma farmacêutica (ex comprimido) |
| fabricante |
VARCHAR(100) |
|
|
✔️ |
Nome do fabricante |
| registro_anvisa |
VARCHAR(50) |
|
|
✔️ |
Registro ANVISA |
Tabela cuidado_pessoal
| Campo |
Tipo |
PK |
FK |
Nullable |
Descrição |
| id |
SERIAL |
✔️ |
|
❌ |
ID do produto de cuidado pessoal |
| nome |
VARCHAR(100) |
|
|
❌ |
Nome do produto |
| descricao |
VARCHAR(255) |
|
|
✔️ |
Descrição |
| subcategoria_id |
INT |
|
✔️ |
✔️ |
FK SubcategoriaCuidadoPessoal(id) |
| quantidade |
VARCHAR(20) |
|
|
✔️ |
Quantidade |
| volume |
VARCHAR(20) |
|
|
✔️ |
Volume (ex 200ml) |
| uso_recomendado |
VARCHAR(100) |
|
|
✔️ |
Ex uso diário, noturno |
| publico_alvo |
VARCHAR(50) |
|
|
✔️ |
Ex adulto, infantil |
| fabricante |
VARCHAR(100) |
|
|
✔️ |
Fabricante |
Tabela suplemento_alimentar
| Campo |
Tipo |
PK |
FK |
Nullable |
Descrição |
| id |
SERIAL |
✔️ |
|
❌ |
ID do suplemento |
| nome |
VARCHAR(100) |
|
|
❌ |
Nome do suplemento |
| descricao |
VARCHAR(255) |
|
|
✔️ |
Descrição |
| principio_ativo |
VARCHAR(100) |
|
|
✔️ |
Princípio ativo (se houver) |
| sabor |
VARCHAR(50) |
|
|
✔️ |
Sabor (ex morango, baunilha) |
| peso_volume |
VARCHAR(20) |
|
|
✔️ |
Peso ou volume |
| fabricante |
VARCHAR(100) |
|
|
✔️ |
Fabricante |
| registro_anvisa |
VARCHAR(50) |
|
|
✔️ |
Registro ANVISA |
Tabela item_estoque
| Campo |
Tipo |
PK |
FK |
Nullable |
Descrição |
| id |
SERIAL |
✔️ |
|
❌ |
ID do item em estoque |
| codigo_barras |
VARCHAR(80) |
|
|
❌ |
Código de barras (único) |
| fornecedor_id |
INT |
|
✔️ |
❌ |
FK Fornecedor(id) |
| preco |
DECIMAL(10,2) |
|
|
❌ |
Preço |
| lote |
VARCHAR(50) |
|
|
❌ |
Lote de fabricação |
| data_fabricacao |
DATE |
|
|
✔️ |
Data de fabricação |
| data_validade |
DATE |
|
|
❌ |
Data de validade |
| produto_medicamento_id |
INT |
|
✔️ |
✔️ |
FK Medicamento(id) (se for medicamento) |
| produto_cuidado_pessoal_id |
INT |
|
✔️ |
✔️ |
FK CuidadoPessoal(id) (se for produto de cuidado pessoal) |
| produto_suplemento_alimentar_id |
INT |
|
✔️ |
✔️ |
FK SuplementoAlimentar(id) (se for suplemento) |
| tipo_produto |
VARCHAR(20) |
|
|
❌ |
‘medicamento’, ‘cuidado_pessoal’ ou ‘suplemento_alimentar’ |
| Regra CHECK |
- |
|
|
|
Apenas um dos três produtos pode ser preenchido por registro |
Tabela item_armazenado
| Campo |
Tipo |
PK |
FK |
Nullable |
Descrição |
| id |
SERIAL |
✔️ |
|
❌ |
ID do item armazenado |
| armazem_id |
INT |
|
✔️ |
❌ |
FK Armazem(id) |
| item_estoque_id |
INT |
|
✔️ |
❌ |
FK ItemEstoque(id) |
| quantidade |
INT |
|
|
❌ |
Quantidade disponível |
| data_atualizacao |
TIMESTAMP |
|
|
❌ |
Data da última atualização (auto) |
Tabela movimentacao_estoque
| Campo |
Tipo |
PK |
FK |
Nullable |
Descrição |
| id |
SERIAL |
✔️ |
|
❌ |
ID da movimentação |
| item_estoque_id |
INT |
|
✔️ |
❌ |
FK ItemEstoque(id) |
| funcionario_id |
INT |
|
✔️ |
✔️ |
FK Funcionario(id) |
| data_movimentacao |
TIMESTAMP |
|
|
❌ |
Data da movimentação |
| tipo |
VARCHAR(20) |
|
|
❌ |
‘entrada’ ou ‘saida’ |
| quantidade |
INT |
|
|
❌ |
Quantidade movimentada |
| cpf_comprador |
VARCHAR(14) |
|
|
✔️ |
CPF do comprador |
| nome_comprador |
VARCHAR(100) |
|
|
✔️ |
Nome do comprador |
| receita_digital |
TEXT |
|
|
✔️ |
Receita médica digital (quando aplicável) |
| observacoes |
TEXT |
|
|
✔️ |
Observações gerais |
Tabela subcategoria_cuidado_pessoal
| Campo |
Tipo |
PK |
FK |
Nullable |
Descrição |
| id |
SERIAL |
✔️ |
|
❌ |
ID da subcategoria |
| nome |
VARCHAR(100) |
|
|
❌ |
Nome (único) |
| descricao |
VARCHAR(255) |
|
|
✔️ |
Descrição da subcategoria |
Tabela restricao_alimentar
| Campo |
Tipo |
PK |
FK |
Nullable |
Descrição |
| id |
SERIAL |
✔️ |
|
❌ |
ID da restrição alimentar |
| nome |
VARCHAR(50) |
|
|
❌ |
Nome da restrição (único) |
Tabela restricao_suplemento
| Campo |
Tipo |
PK |
FK |
Nullable |
Descrição |
| suplemento_alimentar_id |
INT |
✔️ |
✔️ |
❌ |
FK SuplementoAlimentar(id) |
| restricao_alimentar_id |
INT |
✔️ |
✔️ |
❌ |
FK RestricaoAlimentar(id) |
| severidade |
VARCHAR(20) |
|
|
✔️ |
‘leve’, ‘moderada’ ou ‘grave’ |
| observacoes |
TEXT |
|
|
✔️ |
Comentários adicionais sobre a restrição |