none
Estrutura de um banco de dados multiplo clientes RRS feed

  • Discussão Geral


  • Pessoal boa tarde, eu estou com uma grande dúvida e gostaria da ajuda ou da opinião de vocês.
    Estou criando uma sistema em asp.net C# com banco de dados SQL Server, será um sistema que poderá ser utilizado por muitas empresas, as mesma entra no meu site, compra o serviço e começa usar. Andei pesquisando na internet como eu faria com a questão do banco de dados e li em varios foruns a cerca de criar apenas um banco de dados, onde em todas as minhas tabelas eu criaria uma chave estrangeira referenciando o ID do meu cliente (empresa) minha dúvida é a seguinte imagina-se uma tabela de cadastro de produtos aonde a empresa A (ID 1) cadastrou um produto aonde na tabela de produtos recebeu o ID 1, suponhamos que uma outra empresa B (ID 2) irá cadastrar um produto também no caso ela ficaria com o ID 2 porém a minha duvida é a seguinte na minha tabela é necessário eu criar uma coluna aonde eu irei controlar esse codigo do produto, ou seja, cada cliente irá ter um sequencial separado, não se utilizando assim do ID da tabela ou que outra maneira eu poderia fazer?

    Fico no aguardo...E obrigado pela a ajuda.
    segunda-feira, 21 de outubro de 2013 14:47

Todas as Respostas

  • Anderson, caso voce faça como esta dizendo até funciona, porem em cada tabela voce terá que ter o ID do cliente, porem quanto de informação será consumido por cada cliente ? as tabelas correm o risco de ficarem gigantescas com indices fragmentado gerando lentidão para todos os seus clientes, fora que o backup tambem será mais demorado.

    O que eu faria é uma unica instancia e somente uma base de dados por cliente, cada cliente novo voce somente criaria a base e geraria o script da mesma, na aplicação teria que ter um de para de login de cada cliente para a base especifica porem ficaria mais facil de administrar cada cliente.


    Alexandre Matayosi Conde Mauricio.

    segunda-feira, 21 de outubro de 2013 15:13
  • Alexandre então no caso você sugere que eu faça a criação de uma nova base de dados a cada cliente que eu possua?

    Não consigo apenas entender como eu faria isso via programação, qual seria a maneira de chamar o banco de dados especifico de cada cliente. Seria pelo Web Config??? e quando você fala em uma unica instancia, como seria??? Desculpa é que eu estou começando agora e tenho algumas dificuldades. 
    segunda-feira, 21 de outubro de 2013 16:21
  • Então Anderson, uma unica instancia é uma instalação do SQL, dentro de cada instancia voce pode ter quantas bases de dados voce quiser, assim como tem as do sistema master, msdb, model e tempdb voce criaria uma base para cada cliente.

    Quantos clientes voce acha que terá ? não conheço a parte de .net mas falando na parte de banco de dados isto seria uma forma mais organizada e de melhor manutenção.


    Alexandre Matayosi Conde Mauricio.

    segunda-feira, 21 de outubro de 2013 16:35
  • Então Alexandre eu terei em média 150 clientes. Teria como você postar um exemplo de como eu crio essa instancia em meu banco de dados e como adicionar depois as novas bases de dados e também todas as minhas Procedures que eu tenho, como por exemplo para inserir um novo produto? Como gerar esse script e principalmente esse instancia citada por você.
    segunda-feira, 21 de outubro de 2013 16:42