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:
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
TB_CAMPANHA_PAIS;
TB_CAMPANHA_ESTADO;
TB_CAMPANHA_CIDADE;
TB_CAMPANHA_REGIONAL;
TB_CAMPANHA_AGENCIA;
TB_CAMPANHA_EMISSOR;