id 1 -4370
ACESSE SUA CONTA   |   facebook

Cadastre-se   //   Vantagens   //   Esqueci minha senha

Estrutura de Banco de Dados







2.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.

CampoTipoDescriçã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 id ou por fimPregao quando a peça está em leilão.

  • Não é permitido duplicar uma peça na fila aberta.

Queries principais:

  • Listar pregão ativo:

 
SELECT lp.*, am.imgAnunFrente, am.imgAnunVerso FROM lista_pregao lp JOIN anuncios_moedas am ON lp.idAnuncio = am.idAnuncio WHERE lp.status = 'aberto' ORDER BY CASE WHEN lp.fimPregao IS NOT NULL THEN 0 ELSE 1 END, lp.id ASC;

2.2.2 anuncios_moedas / anuncios_cedulas

Armazena informações detalhadas das peças.

CampoTipoDescriçã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.

CampoTipoDescriçã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:

 
SELECT MAX(valor_lance) AS maior_lance FROM lances WHERE idMoeda = :idMoeda AND idAnuncio = :idAnuncio;

2.2.4 usuarios

Cadastro de participantes do pregão.

CampoTipoDescriçã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.

CampoTipoDescriçã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.idAnuncioanuncios_moedas.idAnuncio ou anuncios_cedulas.idAnuncio

  • lances.idUsuariousuarios.id

  • lances.idMoeda / idAnunciolista_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

  1. Criar índices em lances(idMoeda, idAnuncio) para acelerar consultas de maior lance.

  2. Adicionar chave estrangeira com ON DELETE CASCADE para lances, evitando lances órfãos.

  3. 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.

  4. Manter histórico completo de lances para auditoria e análise de pregão.



Fonte:

Autor do blog: Nilton Romani

id 2 -4370
Voltar
Compartilhar
Facebook Twitter YouTube Feed de notícias
Coleções de Cédulas e Moedas Brasileiras © 2014. Todos os direitos reservados.