ESTRUTURA DE CAMPANHA - PONTUAÇÃO - PESO

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Moloukos
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 54
Registrado em: Qui, 18 Set 2008 10:22 pm
Localização: São Paulo - SP
Moloukos Rox

BOM DIA.

TENHO UMA ESTRUTURA ONDE VAMOS APLICAR DESCONTOS EM PROMOÇÕES QUE SERÃO CADASTRADAS PELOS GERENTES DOS SETORES DA EMPRESA. ESSAS PROMOÇOES INICIAM O CADASTRO NA TABELA DE TB_CAMPANHA_PROMOCAO INDICANDO O NOME DA CAMPANHA, A VALIDADE E O MAIS IMPORTANTE
O VALOR DO DESCONTO. ESSE DESCONTO PORÉM, PODE SER APLICADO POR UM OU MAIS CONTINENTE, UM OU MAIS PAIS, UM OU MAIS ESTADO, UM OU MAIS CIDADE, UM OU MAIS REGIONAL, UM OU MAIS AGENCIA OU UM OU MAIS EMISSOR. TAMBÉM PODE SER APLICADO A TODOS, SENDO CONSIDERADO SEMPRE O MAIS RESTRITIVO, OU SEJA O MENOR NÍVEL QUE SERIA O EMISSOR NESSE CASO, SE O EMISSOR não TIVER CADASTRO NA CAMPANHA SOBE O NIVEL PARA AGENCIA, DEPOIS REGIONAL E ASSIM POR DIANTE.

NO MOMENTO QUE O USUARIO FINAL BUSCA O PRODUTO NO SITE(LEMBRANDO QUE SEMPRE TEREI A CIDADE DE ONDE ESTA SENDO REALIZADA A BUSCA), UMA ROTINA SERA CHAMADA E DEVOLVERA O VALOR DO DESCONTO. ALGUÉM CONHECE UMA ESTRUTURA DE PONTUAÇÃO, PESO, OU UMA FORMA MAIS PERFORMARTICA DE PERCORRER OS NÍVEIS E ENCONTRAR O VALOR QUE REALMENTE DEVERÁ SER DEVOLVIDO?

NÃO SEI SE CONSEGUI SER CLARO... A ESTRUTURA EM NÍVEL HIERÁRQUICO ESTA ABAIXO:

Selecionar tudo

TB_CAMPANHA_PROMOCAO

CREATE TABLE TB_CAMPANHA_PROMOCAO(
  ID_CAMPANHA     NUMBER(10) NOT NULL,
  NM_CAMPANHA     VARCHAR2(100) NOT NULL,
  DT_VALIDADE_IN  DATE,
  DT_VALIDADE_FIM DATE,
  VL_DESCONTO     NUMBER(5,2) NOT NULL,
  STATUS          NUMBER(1)  );

TB_CAMPANHA_CONTINENTE;
CREATE TABLE TB_CAMPANHA_CONTINENTE(
   ID_CAMPANHA  NUMBER(10) FK 
   ID_CONTINENTE NUMBER(10));
   
EXEMPLO DOS DADOS:
ID_CAMPANHA 1 - CONTINENTE 1
ID_CAMPANHA 1 - CONTINENTE 2
ID_CAMPANHA 2 - CONTINENTE 1
ESSA ESTRUTURA DE TABELA E DADOS SÃO REPETIDAS EM TODAS AS TABELAS ABAIXO:

TB_CAMPANHA_PAIS;
TB_CAMPANHA_ESTADO;
TB_CAMPANHA_CIDADE;
TB_CAMPANHA_REGIONAL;
TB_CAMPANHA_AGENCIA;
TB_CAMPANHA_EMISSOR;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 19 visitantes