Estrutura de Banco de Dados
Ouvir conteúdo
Clique para ouvir o texto completo2.1 Visão Geral
O banco de dados do sistema Pregão CCMBR foi projetado para suportar fila de pregão, histórico de lances, cadastro de peças (moedas e cédulas), usuários e configurações do sistema.
Ele é estruturado em tabelas relacionais com chaves primárias e estrangeiras, garantindo integridade dos dados e consistência no pregão.
2.2 Tabelas Principais
2.2.1 lista_pregao
Tabela responsável por armazenar a fila de pregão, status e referência à peça.
| Campo | Tipo | Descrição |
|---|---|---|
id |
INT PK AI | Identificador único do pregão |
idMoeda |
INT | Referência à moeda (se for moeda) |
idAnuncio |
INT | Referência ao anúncio na tabela anuncios_moedas ou anuncios_cedulas |
preco |
DECIMAL(10,2) | Lance inicial |
status |
ENUM | Status: aberto, encerrado, suspenso |
fimPregao |
DATETIME | Data e hora de encerramento (quando aplicável) |
criado_em |
DATETIME | Data de inclusão do registro |
Observações:
-
A ordenação da fila é feita pelo campo
idou porfimPregaoquando a peça está em leilão. -
Não é permitido duplicar uma peça na fila aberta.
Queries principais:
-
Listar pregão ativo:
2.2.2 anuncios_moedas / anuncios_cedulas
Armazena informações detalhadas das peças.
| Campo | Tipo | Descrição |
|---|---|---|
idAnuncio |
INT PK AI | Identificador único do anúncio |
nome |
VARCHAR(255) | Nome da moeda/cédula |
descricao |
TEXT | Descrição detalhada da peça |
imgAnunFrente |
VARCHAR(255) | Arquivo da imagem frontal |
imgAnunVerso |
VARCHAR(255) | Arquivo da imagem verso |
pais |
INT | Código do país (ex.: 36 = Brasil) |
ano |
YEAR | Ano da peça |
ativo |
ENUM | S ou N para exibição ativa |
criado_em |
DATETIME | Data de criação do anúncio |
Observações:
-
Usar
ativo = 'S'para exibir no catálogo. -
Todas as imagens devem ser validadas para evitar links quebrados.
2.2.3 lances
Histórico de lances de cada peça.
| Campo | Tipo | Descrição |
|---|---|---|
id |
INT PK AI | Identificador do lance |
idUsuario |
INT | Referência ao usuário que deu o lance |
idMoeda |
INT | Referência à moeda/cédula |
idAnuncio |
INT | Referência ao anúncio da peça |
valor_lance |
DECIMAL(10,2) | Valor do lance |
criado_em |
DATETIME | Data e hora do lance |
Regras importantes implementadas:
-
Apenas lances maiores que o lance atual são aceitos.
-
Em caso de valor igual, o primeiro lance é aceito e o segundo é rejeitado.
Query para obter maior lance atual:
2.2.4 usuarios
Cadastro de participantes do pregão.
| Campo | Tipo | Descrição |
|---|---|---|
id |
INT PK AI | Identificador do usuário |
nome |
VARCHAR(255) | Nome completo |
email |
VARCHAR(255) | E-mail do usuário |
senha |
VARCHAR(255) | Hash da senha |
nivel |
ENUM | user, adm |
creditoTroca |
DECIMAL(10,2) | Crédito interno para recompras |
creditoCash |
DECIMAL(10,2) | Crédito Cash |
criado_em |
DATETIME | Data de criação da conta |
2.2.5 configuracoes
Tabela para parâmetros globais do sistema.
| Campo | Tipo | Descrição |
|---|---|---|
id |
INT PK AI | Identificador |
parametro |
VARCHAR(100) | Nome da configuração |
valor |
VARCHAR(255) | Valor do parâmetro |
Exemplos: tempo de pregão padrão, percentual de comissão, limites de crédito, URLs de ficha técnica, etc.
2.3 Relacionamentos
-
lista_pregao.idAnuncio→anuncios_moedas.idAnuncioouanuncios_cedulas.idAnuncio -
lances.idUsuario→usuarios.id -
lances.idMoeda/idAnuncio→lista_pregao.id
Esses relacionamentos garantem:
-
Que todos os lances pertençam a um usuário válido e a uma peça válida.
-
Integridade de dados ao mover peças da fila para encerramento.
2.4 Observações Técnicas e Sugestões de Melhoria
-
Criar índices em
lances(idMoeda, idAnuncio)para acelerar consultas de maior lance. -
Adicionar chave estrangeira com
ON DELETE CASCADEpara lances, evitando lances órfãos. -
Consolidar tabelas de anúncios de moedas e cédulas em uma tabela única com campo
tipo_peca = 'moeda' | 'cedula'para reduzir duplicação de código. -
Manter histórico completo de lances para auditoria e análise de pregão.
Comentários
Área de comentários em breve...

