Galera, bom dia!
No meio de um desenvolvimento de um sistema, me bateu uma dúvida:
Eu tenho apenas uma base de dados. Ela possui o escopo de cadastro de cliente, controle de venda, cadastro de plano e consórcio. Só que no meio do desenvolvimento vi que no futuro terei que por um controle de estoque.
Como podemos ver, são algumas coisas que fogem do escopo de outras.
Estou usando SQL.
Qual seria a melhor forma de organizar essa base?
Uma para cada escopo?
Sair do SQL e ir para um outro contexto que permita por em prática essas duas perguntas a cima?
Já ouvi falar em “micro serviços”, porém ainda não parei para analisar.
Alguém com uma boa solução lógica para ajudar?
de que “escopos” vc esta falando?
amigo sua base de dados serve pra serializar os dados. sem isso só tem objetos em memoria.
pense no seu modelo de dados primeiro. vc tem um Plano, um Consorcio, uma Venda, um Cliente. defina-os.
Como eles interagem? Quais são as regras? Deixe o sql de lado um pouco.
Definiu? ai esta a sua resposta.
Cada “escopo” que vc provavelmente esta falando vai ser uma ou mais tabelas dentro da mesma database. Vc não tem necessidade de isolar mais isso pq as coisas se falam entre si.
Mas existem alguns requisitos que podem justificar separar em diversas databases como: segurança ( onde os dados de uma empresa não podem jamais estar juntos de outras ) e performance ( fazendo sharding de database vc consegue ler/inserir mais porem vc precisa de um volume muito grande de dados e nem sempre é obvio ).
Opa, obrigado pela resposta. Talvez você possa me ajudar.
Vamos lá: Se eu tenho um sistema de controle de estoque; então terei que construir uma base que reflita nesse escopo.
Se eu tenho um sistema de gerenciamento de cliente. Logo, terei de construir uma base que reflita isso.
Minha base, atualmente, atinge a todos esses escopos que eu citei na pergunta inicial. Porém, me veio a mente uma dúvida postada por um homem(que estava usando um perfil fake, de mulher, no facebook [pois assim os homens tendem a responder mais rápido e melhor rs]) no facebook. E a dúvida era exatamente a essa minha questão.
Eu entendo que a base reflete objetos serializados em tabelas gerenciadas por uma engine.
Apenas pensei que talvez existisse uma técnica para administrar melhor esses escopos com bases diferentes, entende?
Foi só uma curiosidade.
vamos la: o seu sistema de controle de estoque e o de gerencia de clientes falam da mesma coisa?
se são coisas totalmente diferentes, não tem pq estar na mesma database né?
se são os mesmos e eles conversam, ai vc tem que pensar se vc não esta fazendo integração via banco de dados. é uma armadilha que a longo prazo cobra seu preço em deixar a manutenção complexa (se a base de dados mudar muito)
Envolvem a mesma coisa. Eles compõe um maior.
Bem… baseado na resposta do amigo, creio que não deva existir algo assim.
Sendo assim, tá de boa. Foi apenas uma curiosidade baseada em uma página de tecnologia de facebook.
Obrigado pelas respostas. o/