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