Criando a sua Loja Virtual - Objetivos e Modelagem de dados
Se você deseja criar um site de comércio eletrônico - uma Loja Virtual - deverá levar em conta os diversos aspectos envolvidos neste processo. A definição da tecnologia utilizada , o perfil dos usuários , a segurança das transações , a qualidade e quantidade das informações e a estrutura de suporte , dentre outros aspectos , podem ditar o fracasso ou sucesso do seu site de e-commerce.
Para criar uma loja virtual usando ASP .NET acompanhe o curso no link : ASP .NET - Criando um site completo com carrinho de compras (Curso)
|
Iremos mostrar as principais etapas envolvidas na criação de uma loja virtual usando banco de dados. Ao final deste último capítulo você estará apto há criar a sua própria loja Virtual na WEB usando os conceitos aqui descritos.
Abordaremos um exemplo simples, mas que envolve praticamente todas as tarefas que você vai precisar saber para criar a sua própria loja virtual. Não iremos aqui nos preocupar com a aparência do site (você vai perceber que isto é verdade). Nossa preocupação será mostrar de forma clara cada conceito técnico empregado no desenvolvimento do projeto. Isto não quer dizer que você não deve se preocupar com a aparência. Uma interface inteligente que apresente com clareza a empresa e seus produtos e com todas a informações necessárias para orientar o usuário que acesse o seu site é fundamental. Nada de abusar de imagens e tornar o acesso ao site lento a ponto de irritar o internauta , nem usar uma interface tosca e rudimentar o que poderia causar desconfiança aos usuários.
O objetivo Eu quero vender meus produtos na WEB
Bem , você possui uma Softhouse/Livraria (podia ser uma livraria, uma discoteca , uma loja de eletrodomésticos , um revendedora de automóveis, etc.) e decidiu colocar os sistemas desenvolvidos pela sua empresa e os seus livros a venda na Internet. Neste momento a sua dúvida principal é - "Por onde eu começo ???".
Você deverá definir qual o objetivo do site, o público alvo, as informações que você deseja exibir , os serviços disponibilizados e a tecnologia a ser empregada para construir o site. Simples !!! não é mesmo ?
A primeira coisa que você deve fazer é pensar em como é feita a venda de seus produtos atualmente ou como seria feita na forma tradicional . Na maioria das empresas o ciclo pode ser resumido da seguinte forma:
1-) É feita a propaganda dos produtos. (informações sobre os produtos)
2-) Os clientes entram em contato com a empresa. (Telefone, balão, fax, internet , vendedores, etc..)
3-) Os clientes examinam o produto (catálogo de produtos, demos, vendedores, etc..)
4-) Os clientes fazem o pedido do produto.
4-) Os clientes compram o produto.
5-) É mantido um cadastro de clientes para mala direta para propaganda ou contato posterior.
Na Internet , com algumas adequações , o ciclo será praticamente o mesmo, só uma coisa vai mudar : o primeiro contato de seus clientes potenciais será feito virtualmente , ou seja , via Internet, através do site de sua empresa.
Para poder disponibilizar a sua loja virtual você deverá empregar a tecnologia que permite concretizar o seu negócio na WEB , você vai usar : HTML, JavaScript, ASP , ADO , SQL e banco de dados na Internet.
Modelando os dados Banco de dados, Tabelas , campos e registros
Você já percebeu que vai precisar armazenar informações em arquivos de banco de dados. Essas informações , para o nosso caso , são:
1-) Informações sobre os produtos (identificação , nome, valor, forma de envio, etc..)
2-) Informações sobre os clientes ( identificação, nome, endereço, etc..)
3-) Informações sobre os pedidos dos clientes ( cliente, produto, quantidade, etc..)
Além disto você deverá oferecer informações sobre a sua empresa de um forma clara para que o usuário tenha confiança em adquirir os seus produtos.
Como guardar essas informações de forma eficiente e segura ? Dependendo da plataforma onde você pretende criar a aplicação a resposta será diferente, mas para podermos trabalhar com um universo maior de usuários iremos assumir que você irá usar um banco de dados padrão Access , um arquivo com extensão mdb , para armazenar os seus dados.
A primeira coisa a fazer é criar o seu banco de dados , para isso iremos utilizar o Access 2000 vamos batizá-lo com o nome de Esoft.mdb. Ele conterá todas as informações que precisamos para gerenciar nossa loja virtual.
Tabela Clientes
O próximo passo é criar as tabelas para cada entidade que desejamos controlar , vamos começar representando a entidade clientes com a tabela clientes. A tabela clientes , como o próprio nome diz , deverá armazenar informações sobre o nossos clientes , então devemos criar campos na tabela para cada atributo da entidade clientes. Vamos montar a estrutura da tabela clientes:
Campo | Descrição |
ClienteNome | O campo Nome representa o atributo que irá armazenar os nomes dos nossos clientes |
ClienteEndereco | O campo Endereço representa o atributo que irá armazenar o endereço da entidade clientes |
ClienteCidade | O campo Cidade representa o atributo que irá armazenar o nome da cidade da entidade clientes |
ClienteEstado | O campo Estado representa o atributo que irá armazenar a sigla do estado da entidade clientes |
ClienteCep | O campo Cep representa o atributo que irá armazenar o codigo postal da entidade clientes |
ClienteTelefone | O campo Telefone representa o atributo que irá armazenar o número do telefone da entidade clientes |
ClienteEmail | O campo E-mail representa o atributo que irá armazenar o e-mail eletrônico da entidade clientes |
ClienteDocumento | O campo Documento representa o atributo que irá armazenar o número do documento (Rg,CIC ou CGC) da entidade clientes |
ClienteSenha | O campo Senha representa o atributo que irá armazenar a senha que identificará o cliente em nossa entidade clientes |
ClienteSexo | O campo Sexo representa o atributo que irá armazenar o sexo (M,F) da entidade clientes |
ClienteNascimento | O campo Nascimento representa o atributo que irá armazenar a data de nascimento (dd/mm/yyyy) da entidade clientes |
Nossa tabela clientes apresenta 11 campos com os quais pretendemos identificar um cliente. Todos os campos estão relacionados com a entidade clientes e cada campo é um atributo da entidade clientes. Assim, como primeira regra , podemos dizer que sempre devemos criar tabelas separadas para cada entidade que desejamos representar no banco de dados e , como segunda regra, devemos criar um campo para cada atributo da entidade que desejamos identificar.
Mas há ainda um pequeno detalhe que precisamos ajustar em nossa tabela , como queremos identificar cada cliente de forma a evitar duplicidade, como faremos com clientes com o mesmo nome (homônimos) ? Para contornar este problema , se quisermos identificar cada cliente de forma única , teremos que atribuir um código único a cada cliente. Vamos então incluir um campo em nossa tabela chamado ID (Identificador) que representará um código único atribuído a cada cliente, e que o identificará. Aproveitando a funcionalidade do banco de dados Access nosso campo será definido como do tipo Autonumeração , significando que o próprio sistema irá atribuir e incrementar o código a cada cliente a medida que incluirmos os clientes em nossa tabela. Iremos definir este campo como uma chave primária ; fazendo isto não iremos permitir repetições de códigos de clientes na tabela, pois o sistema nos avisa gerando uma erro em tempo de execução. Para encerrar nossa tabela clientes iremos acrescentar a cada nome de campo da tabela o prefixo - Cliente. Veja a abaixo como ficou a estrutura completa da nossa tabela clientes :
|
Tabela Produtos
Agora iremos criar a tabela produtos e campos para cada atributo da entidade produtos. Da mesma forma que na tabela clientes, é nosso desejo poder identificar cada produto de forma única. Para isso iremos atribuir um campo que irá conter um número que representará o código do produto e que será único para cada produto. Este campo também será do tipo Autonumeração e será definido como a chave primária da tabela. A estrutura para tabela produtos vem a seguir:
Campo | Descrição |
ProdutoID | O campo ProdutoID , o atributo que irá armazenar o código dos produtos . |
Nome | O campo Nome representa o atributo que irá armazenar o nome de cada produto. |
Valor | O campo Valor representa o atributo que irá armazenar o valor de cada produto. |
Descricao | O campo Descrição representa o atributo que irá armazenar a descrição de cada produto . |
Urlimagem | O campo Urlimagem representa o atributo que irá armazenar o caminho de localização do arquivo imagem do produto. |
paginas | Define o número de páginas que possui o livro |
Autor | O nome do autor do livro ou Software |
Categoria | A categoria na qual esta classificada o produto |
peso | O peso em gramas do produto. |
estoque | A quantidade atual do produto em estoque |
A estrutura da tabela Produtos
Tabela Pedidos
A tabela pedidos deverá armazenar os pedidos dos clientes . Assim , quando o cliente escolhe um produto ele estará fazendo um pedido . Precisamos armazenar os dados referentes a cada pedido feito por um cliente de forma a poder controlar nossa loja virtual. A princípio poderíamos pensar em sua estrutura como sendo da seguinte forma:
Campo | Descrição |
Cliente | Campo para identificar o cliente que comprou o pedido |
Nome | O nome do produto |
ValorPedido | O valor do produto |
Quantidade | A quantidade adquirida do produto |
DataPedido | A data do pedido. |
Fechado | Se o pedido foi completado ou não |
Cartao | Qual cartao o cliente usou para fazer o pagamento |
Afinal , estamos armazenando as informações que precisamos , pois temos na tabela: o nome cliente que fez o pedido , o nome , valor e quantidade do produto adquirido, a data do pedido , a indicação se o pedido foi completado ou não e qual o cartão usado pelo cliente. Ao examinarmos melhor poderemos perceber que se usarmos a tabela com a estrutura proposta nossa aplicação além de desperdiçar espaço em disco e memória não irá funcionar adequadamente e , o que é pior , nos dará um grande trabalho de manutenção.
Vamos mostrar como ficarão os dados armazenados na tabela pedidos , usando como exemplo os pedidos feitos pelos usuários hipotéticos João e José. (para simplificar adotamos materiais de escritório como produtos). Veja como ficam os dados na tabela:
Cliente | Nome | ValorPedido | Quantidade | DataPedido | Fechado | Cartao |
Joao | Lápis 101 | 1.00 | 5 | 12/04/1999 | Sim | Visa |
Joao | Borracha | 2.00 | 2 | 12/04/1999 | Sim | Visa |
Joao | Apontador | 3.50 | 3 | 14/02/2000 | Não | Visa |
Joao | Caneta | 4.00 | 5 | 14/02/2000 | Não | Visa |
Jose | Borracha | 2.00 | 3 | 17/03/2000 | Sim | Visa |
Jose | Lápis 101 | 1.00 | 4 | 17/03/2000 | Sim | Visa |
Você percebeu que temos uma redundância em nossos dados ? O nome do produto, valor e quantidade são repetidos desnecessariamente ocupando assim espaço. Outro problema é a identificação do pedido do cliente. Perceba que João tem dois pedidos , mas como identificá-los ? Imagine agora a seguinte situação : Você Alterou o nome de um produto e precisa refletir isto na tabela pedidos. Vai ter que alterar todos os pedidos para aquele produto. Sentiu o drama ???
Vamos melhorar a nossa tabela pedidos adotando os seguintes procedimentos:
CartaoCredito - O nome do cartão de crédito utilizado no pagamento.
NumeroCartao - O número do cartão de crédito.
TitularCartao - O nome do titular do cartão de crédito.
ValidadeCartao - A validade do cartão de crédido.
NomeDestinatario - O nome do destinatário.
EnderecoDestinatario - O endereço do destinatário
CidadeDestinatario - A cidade do destinatário.
EstadoDestinatario - O Estado do destinatário
CepDestinatario - O cep do destinatário.
Nossa tabela Pedidos ficou com a seguinte estrutura:
O campo datapedido foi definido como do tipo Data/Hora pois irá armazenar valores do tipo data.
O campo fechado foi definido como do tipo Booleano, podendo assumir dois valores True/Sim e False/Não. Quando um pedido estiver aberto o valor assumido será False/Não.
A tabela itens do Pedido
Definimos que cada pedido será identificado de forma única , desta forma um pedido poderá conter diversos produtos que são os itens do pedido feito pelo cliente. Devemos criar uma tabela para armazenar os itens do pedido. Ela deverá conter : o código do pedido, o código do produto , a quantidade adquirida do produto e um campo para identificar cada item de forma única , um campo autonumeração e chave primária da tabela. A tabela itens_pedidos terá a seguinte estrutura:
Cada pedido terá um código único e será composto por diversos itens que comporão o pedido. A relação entre as tabelas será o campo PedidoID que representa o código do pedido. Podemos visualizar esta situação na figura a seguir:
É muito importante compreender esta implementação , pois aqui está o coração de sua loja virtual.
A tabela Cartões
A tabela Cartoes deverá armazenar um identificador para cada cartão e o nome do cartão correspondente. O campo CartaoCreditoID representará este identificador, será do tipo Autonumeração e chave primária. O campo CartaoCreditoNome representará o nome do cartão permitido na transação. Assim a estrutura da tabela Cartoes fica assim:
Os relacionamentos e a integridade referencial
Você já deve ter percebido que temos campos relacionados em todas as tabelas criadas até agora: a figura a seguir mostra todos os relacionamentos entre as tabelas usadas em nossa loja virtual:
Relacionamentos entre as tabelas
Vemos que o campo ClienteID da tabela Clientes esta relacionado com o campo ClienteID da tabela Pedidos O tipo de relacionamento é de um-para-muitos , ou seja, teremos um único código de cliente na tabela Clientes que poderá estar relacionado a muitos códigos de clientes na tabela pedidos. Neste tipo de relacionamento , como em todos os usados neste projeto, foi imposto a integridade referencial.
A integridade referencial é um sistema de regras que muitos bancos de dados relacionais , inclusive o Microsoft Access , utilizam para garantir que os relacionamentos entre registros de tabelas relacionadas sejam válidos e que você não exclua ou altere, acidentalmente, dados relacionados.
Você não poderá excluir um cliente da tabela Clientes enquanto existirem pedidos feitos para este cliente na tabela Pedidos; não poderá excluir também um pedido da tabela Pedidos enquanto existirem itens de pedidos relacionados a este pedido na tabela Itens_Pedidos. A integridade referencial faz com o mecanismo do banco de dados reclame e gere um erro em tempo de execução , que deveremos tratar, avisando ao usuário que a ação que ele está tentando realizar não é permitida.
A tabela Frete
Precisaremos criar uma tabela onde iremos definir o preço do frete a ser para cada pedido. Iremos definir preços para cada região do país , podendo inclusive isentar o valor do frete em uma política promocional. A estrutura da tabela Frete é a seguinte:
A tabela Estados
A tabela Estados irá conter o nome , código e a sigla para cada estado. A sua estrutura é a seguinte:
A Tabela Categorias
A tabela Categorias irá definir a classificação por categoria de nossos produtos. Como estaremos vendendo livros e Software , os softwares estarão catalogados na categoria Software e cada livro deverá ser incluído em uma categoria relacionada com o assunto sobre o qual trata o livro. A estrutura da tabela é a seguinte:
Como exemplo de categorias possíveis podemos ter:
Todas as tabelas criadas estarão armazenadas em nosso banco de dados , o qual denominamos ESoft.mdb.
Com a criação das tabelas estabelecemos a estrutura básica onde iremos armazenar e gerenciar nossa Loja Virtual. É óbvio que deveremos estar acompanhando toda a movimentação para permitir um suporte eficiente ao pós venda de nossos produtos.
Para criar uma loja virtual usando ASP .NET acompanhe o curso no link : ASP .NET - Criando um site completo com carrinho de compras (Curso)
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET