Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Good

Estrutura de um sistema de criar loja virtual

Recommended Posts

Boa noite,

 

estou com dúvidas e estive pensando... se eu fosse criar um sistema de criar lojas virtuais, como poderia ser a estrutura, principalmente nesta parte:

- um banco de dados para cada loja ou um banco de dados para todas as lojas?

 

Que seria separado apenas por id de loja, pedidos seriam unicamente visto por cada loja, óbvio...

 

Qual a sua opinião sobre isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Good

 

Em questão de praticidade e implementação de código a melhor opção seria um banco para todas as lojas.

 

Mas existe o lado performatico, imagine que cada loja tenha 10 Gigas de informação e você tenha pelo menos 200 lojas.

Então teremos um banco de dados com 2 Teras de informação, agora com esse exemplo o que é mais rápido procurar, 1 registro dentro de 10 Gigas de informação, ou buscar 1 registro dentro de 2 Teras de informação?

 

Então em questão de performance é muito melhor você ter um banco de dados para cada loja. melhorando a resposta, na verdade é muito melhor você ter 1 Banco de Dados COM 1 TABELA para cada LOJA VIRTUAL ou N tabelas para cada loja, eu "prefixaria" cada tabela.

 

Com isso eu tenho um Banco de Dados "gigante", mas uma loja completamente apartada de outra loja, o que em questão de performance é muito mais performatico com o passar do tempor, mas é necessário ver todas as limitações do lado do servidor, tamanho disponível, limitações de tabelas e tudo mais...

 

EU criaria uma lógica para que existisse 1 DB_LOJAS prefixando os nomes das tabelas, exemplo para tabelas USUARIO, PRODUTOS, CLASSIFICADO e PROMOÇÃO.

 

1 - DB_LOJAS

    1 - TB_%nomeLojaVirtual%_USUARIO

    1 - TB_%nomeLojaVirtual%_PRODUTOS

    1 - TB_%nomeLojaVirtual%_CLASSIFICADOS

    1 - TB_%nomeLojaVirtual%_PROMOCAO

 

1 - DB_LOJAS

Loja KABUM

    2 - TB_KABUM_USUARIO

    2 - TB_KABUM_PRODUTOS

    2 - TB_KABUM_CLASSIFICADOS

    2 - TB_KABUM_PROMOCAO

 

1 - DB_LOJAS

Loja Megamamute

    3 - TB_MEGAMAMUTE_USUARIO

    3 - TB_MEGAMAMUTE_PRODUTOS

    3 - TB_MEGAMAMUTE_CLASSIFICADOS

    3 - TB_MEGAMAMUTE_PROMOCAO

 

1 - DB_LOJAS

Loja Magazine Luiza

    4 - TB_MAGAZINELUIZA_USUARIO

    4 - TB_MAGAZINELUIZA_PRODUTOS

    4 - TB_MAGAZINELUIZA_CLASSIFICADOS

    4 - TB_MAGAZINELUIZA_PROMOCAO


Etc...

 

Mas programação é a gosto de cada um.

Espero ter ajudado.

 

Att.

Felipe Coutinho

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
56 minutos atrás, Felipe Guedes Coutinho disse:

@Good

 

Em questão de praticidade e implementação de código a melhor opção seria um banco para todas as lojas.

 

Mas existe o lado performatico, imagine que cada loja tenha 10 Gigas de informação e você tenha pelo menos 200 lojas.

Então teremos um banco de dados com 2 Teras de informação, agora com esse exemplo o que é mais rápido procurar, 1 registro dentro de 10 Gigas de informação, ou buscar 1 registro dentro de 2 Teras de informação?

 

Então em questão de performance é muito melhor você ter um banco de dados para cada loja. melhorando a resposta, na verdade é muito melhor você ter 1 Banco de Dados COM 1 TABELA para cada LOJA VIRTUAL ou N tabelas para cada loja, eu "prefixaria" cada tabela.

 

Com isso eu tenho um Banco de Dados "gigante", mas uma loja completamente apartada de outra loja, o que em questão de performance é muito mais performatico com o passar do tempor, mas é necessário ver todas as limitações do lado do servidor, tamanho disponível, limitações de tabelas e tudo mais...

 

EU criaria uma lógica para que existisse 1 DB_LOJAS prefixando os nomes das tabelas, exemplo para tabelas USUARIO, PRODUTOS, CLASSIFICADO e PROMOÇÃO.

 

1 - DB_LOJAS

    1 - TB_%nomeLojaVirtual%_USUARIO

    1 - TB_%nomeLojaVirtual%_PRODUTOS

    1 - TB_%nomeLojaVirtual%_CLASSIFICADOS

    1 - TB_%nomeLojaVirtual%_PROMOCAO

 

1 - DB_LOJAS

Loja KABUM

    2 - TB_KABUM_USUARIO

    2 - TB_KABUM_PRODUTOS

    2 - TB_KABUM_CLASSIFICADOS

    2 - TB_KABUM_PROMOCAO

 

1 - DB_LOJAS

Loja Megamamute

    3 - TB_MEGAMAMUTE_USUARIO

    3 - TB_MEGAMAMUTE_PRODUTOS

    3 - TB_MEGAMAMUTE_CLASSIFICADOS

    3 - TB_MEGAMAMUTE_PROMOCAO

 

1 - DB_LOJAS

Loja Magazine Luiza

    4 - TB_MAGAZINELUIZA_USUARIO

    4 - TB_MAGAZINELUIZA_PRODUTOS

    4 - TB_MAGAZINELUIZA_CLASSIFICADOS

    4 - TB_MAGAZINELUIZA_PROMOCAO


Etc...

 

Mas programação é a gosto de cada um.

Espero ter ajudado.

 

Att.

Felipe Coutinho

 

 

 

Ajudou muito.. obrigado por tirar um tempo.. vou analisar, pois comprei um sistema recentemente e vi que cada uma tem um banco de dados diferente. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por violin101
      Caros amigos, saudações.
       
      Estou escrevendo um Sistema Java Web e quando clico no Botão Salvar, o Java acusa esse erro:

      ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null
       
      Já tentei de várias formas resolver esse problema, mas não estou conseguindo.

      Por favor, alguém pode me ajudar identificar a origem e resolver o problema acima ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou enfrentando um problema que não consigo entender.

      Após Instalar o MySql versão 8.0.36, funciona corretamente realizando as conexões.

      O problema é:
      ---[ após reiniciar o micro, o MySql não faz as conexões.
      --[ tenta localizar este arquivo, mas não acha: my.ini
       
      Onde localizo ou configuro este arquivo na Pasta MySql ?

      Grato,
       
      Cesar
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá.
      Estou atualizando meu conhecimento com Front-End e me deparei com o seguinte problema.
      Criei um sistema para fazer o upload de imagens e alguns campos text.
      Algo bem simples para depois começar a estudar javascript para mostrar a miniatura....
      Mas quando saio do navegador Chrome ou da aba por mais de 3 minutos, ao retornar o navegador as vezes atualiza ou nem chega atualizar mas limpa os campos.
      Estou usando um Smart Motorola com Android, mas um amigo testou no iPhone e acontece a mesma coisa.
      Gostaria de saber se há como usar javascript para evitar isso?
      Agradeço desde já.

      <!DOCTYPE html>
      <html>
      <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <title>Uploader</title>
      </head>
      <body>
          <form action="?" method="post" enctype="multipart/form-data">
              <br><br>
              <div>selecione a imagem 1</div>
              <input type="file" name="foto1" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem1">
              
              <br><br>
              <input type="file" name="foto2" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem2">
              
              <br><br>

              <input type="file" name="foto3" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem3">
              
              <br><br>
              <input type="submit" value="Enviar">
              <br><br>
          </form>
      <?php
      if ($_SERVER['REQUEST_METHOD'] == 'POST')
      {
          vardump ($_FILES);
      }
      ?>
      </body>
      </html>
       
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.