none
Multiplas Lojas Virtuais RRS feed

  • Pergunta

  • Olá amigos, estou criando um projeto (asp.net c#) onde devo criar um site e neste mesmo site o cliente pode criar sua loja virtua ou seja N clientes poderam criar sua loja virtual, minha dúvida é a seguinte, qual a melhor forma deu estar fazendo isso?

    Tipo o correto é criar um banco para cada loja ou pode ser o mesmo banco para todas as lojas, apenas criar tabelas diferentes para cada loja, enfim a princípio está é a minha dúvida principal.

    1) Se o correto for criar 1 banco para cada loja, os servidores de hospedagem não permite tal feito, principalmente planos de revenda, pois a criação de banco tem que ser feita via painel então via código acho que se torna impossível não é mesmo?

    2) Então se eu for obrigado a criar tabelas para cada loja virtual com o tempo isso não irá sobrecarregar o banco?

    3) Estou querendo usar o mysql ou devo usar o sql server?

    4) É loucura criar uma única tabela e armazenar tudo nesta única tabela?

    Estou aberto para outras soluções ou dicas


    /* Não esqueça de classificar caso tenha resolvido o problema */

    quarta-feira, 18 de julho de 2012 22:55

Respostas

  • Olá Kerbruth

    Antes de tudo você precisa entender nos mínimos detalhes sobre todo o seu projeto. Quando falo entender, digo, projetar em papel, projetar usando que tipo de framework, qual forma vai fazer, se vai ter uma versão mobile e qual banco de dados vai usar.

    O ponto principal aqui depois que definiu o seu projeto, seria a arquitetura que vai usar. Pra isso, segue um artigo escrito pra te ajudar a entender melhor:

    http://www.ecode10.com/artigo/1566/Arquitetura+de+software+voce+precisa+disso.aspx

    Respondendo suas perguntas (na minha opinião)

    1- Crie apenas um banco de dados e separe bem os usuários e clientes em tabelas. Procure não deixar redundância de dados

    2- Não vai sobrecarregar o banco se for bem separado. O banco foi feito para aguentar milhões de dados sem sobrecarregar

    3- Use SQL Server se consegui pagar o plano pra ele (depende onde você for hospedar)

    4- Se for em uma tabela é loucura, mas você não vai fazer em uma tabela apenas. Utilize sempre mais de uma tabela, por exemplo: Tabela de produto ligado em cada cliente, que é ligado a cada imagem do produto. Entendeu?



    Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.

    Mauricio Junior - Comunidade www.ecode10.com

    • Sugerido como Resposta Mauricio-Junior quinta-feira, 19 de julho de 2012 12:28
    • Marcado como Resposta Kerbruth Kovosk sexta-feira, 20 de julho de 2012 12:10
    quinta-feira, 19 de julho de 2012 12:28

Todas as Respostas

  • Olá Kerbruth

    Antes de tudo você precisa entender nos mínimos detalhes sobre todo o seu projeto. Quando falo entender, digo, projetar em papel, projetar usando que tipo de framework, qual forma vai fazer, se vai ter uma versão mobile e qual banco de dados vai usar.

    O ponto principal aqui depois que definiu o seu projeto, seria a arquitetura que vai usar. Pra isso, segue um artigo escrito pra te ajudar a entender melhor:

    http://www.ecode10.com/artigo/1566/Arquitetura+de+software+voce+precisa+disso.aspx

    Respondendo suas perguntas (na minha opinião)

    1- Crie apenas um banco de dados e separe bem os usuários e clientes em tabelas. Procure não deixar redundância de dados

    2- Não vai sobrecarregar o banco se for bem separado. O banco foi feito para aguentar milhões de dados sem sobrecarregar

    3- Use SQL Server se consegui pagar o plano pra ele (depende onde você for hospedar)

    4- Se for em uma tabela é loucura, mas você não vai fazer em uma tabela apenas. Utilize sempre mais de uma tabela, por exemplo: Tabela de produto ligado em cada cliente, que é ligado a cada imagem do produto. Entendeu?



    Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.

    Mauricio Junior - Comunidade www.ecode10.com

    • Sugerido como Resposta Mauricio-Junior quinta-feira, 19 de julho de 2012 12:28
    • Marcado como Resposta Kerbruth Kovosk sexta-feira, 20 de julho de 2012 12:10
    quinta-feira, 19 de julho de 2012 12:28
  • Mais ninguém quer comentar?

    /* Não esqueça de classificar caso tenha resolvido o problema */

    quinta-feira, 19 de julho de 2012 16:42
  • O que o Mauricio disse é o mais correto a se fazer, só um comentário: se você for ter apenas a tabela loja e a tabela cliente relacionadas(provavelmente não, certo?) como você deu de exemplo você pode utilizar uma chave estrangeira que conecte cada cliente a uma ou mais lojas(lembre-se de não limita-los a apenas uma loja). Como o Mauricio também disse, separe muito bem as informações no banco, eu aconselho a colocar em cada uma das tabelas uma chave que se relacione com o usuário/login, pois se não fizer isso não haverá segurança das informações de cada uma das lojas
    • Editado ThiagoRuiz quinta-feira, 19 de julho de 2012 17:18
    quinta-feira, 19 de julho de 2012 17:18
  • Se um cliente X que fez o cadastro na loja-A, o correto é este mesmo cliente X não ter que preencher o cadastro novamente caso queira comprar na loja-B, certo?

    Agindo assim, como devo controlar tais dados que a loja-A e loja-B devem ter sobre este cliente X? Isso usando membership e roles, qual a melhor maneira de gerenciar isso?

    obrigatóriamente tenho as tabelas aspnet_membership, aspnet_users, aspnet_usersinroles e cadastro (onde contém os dmais dados do cliente), na hora do cliente logar na loja-B devo perguntar se ele quer permitir que os dados dele seja compartilhado com a loja-B? Seria assim? A forma correto?

    Ideias?

    Ou o correto neste caso é em cada loja ter um cadastro para cada usuário?


    /* Não esqueça de classificar caso tenha resolvido o problema */

    quarta-feira, 12 de setembro de 2012 01:07
  • ninguém?

    /* Não esqueça de classificar caso tenha resolvido o problema */

    quarta-feira, 12 de setembro de 2012 13:50