De que trata o artigo

Desenvolvimento de soluções para problemas cotidianos enfrentados por DBAs e desenvolvedores de aplicações para banco dados.


Para que serve

Fornecer conceitos de utilização de funcionalidades do padrão SQL ANSI na resolução de problemas enfrentados no dia-a-dia na recuperação de informações do banco de dados.


Em que situação o tema é útil

Modelagem relacional. Relacionamento 1:N

E aqui vem mais um Desafio SQL. Como é de praxe, apresento a nossa história para aqueles que estão lendo esta coluna pela primeira vez.

Nós acompanhamos nesta coluna o dia-a-dia da empresa fictícia ItsMyBusiness, que é uma empresa de varejo que fez recentemente o seu site de e-commerce.

E o site está vendendo horrores! O sucesso é tanto que um projetinho despretensioso (e mal feito) de criar um mecanismo para vendas pela internet está começando a "fazer água"... E a empresa precisa consertar as coisas antes que os problemas fiquem mais sérios.

Uma série de correções e melhorias têm sido feitas no site da ItsMyBusiness, especialmente na base de dados, que é o que nos interessa.

Recentemente foi lançado um projeto para a empresa ter um controle melhor sobre o ciclo de vendas de cada pedido que recebe no seu site. Trata-se de um novo processo de acompanhamento do status do pedido, que vai desde o registro do pedido até o momento em que se entrega os produtos ao cliente.

Até o momento (e considerando as implementações que fizemos até o Desafio SQL da revista #68), o modelo de dados da empresa está como mostra a Figura 1.

Figura 1. Modelo de dados simplificado da empresa ItsMyBusiness.

O script de criação deste banco de dados está disponível para download no portal da SQL Magazine. O script apresenta versões para rodar em SQL SERVER, DB2, ORACLE e FIREBIRD.

O projeto que estamos criando prevê um novo controle dos pedidos recebidos pela empresa. O fluxo que define o status dos itens de pedido é apresentado na Figura 2.

Figura 2. Fluxo das operações relacionadas a um item de pedido.

Os números exibidos na Figura 2 representam os códigos de status considerados. Estes códigos são registrados na tabela dbo.tblPedidoStatus e suas descrições são mostradas na Tabela 1.

...

Quer ler esse conteúdo completo? Tenha acesso completo