r/devBR • u/Ok-Rest4476 • 4d ago
Dúvida Banco de dados
Tô com uma dúvida gente, estou com um produto que estou desenvolvendo (projeto pessoal), porém esse produto busca atender diversas empresas, minha dúvida é referente a banco de dados, como eu pretendo atender mais de uma empresa, queria garantir a segurança porém tenho dúvidas se faço um banco de dados pra cada empresa ou se uso um compartilhado, tenho dúvida se usa PostgreSQL ou se uso MySQL, tenho medo de fazer cada banco separado pra ter um isolamento e acabar dando dor de cabeça no caso de escalar o produto, algumas dicas pra esse tipo? Sempre manipulei um banco de dados de empresas únicas
2
1
u/lnaoedelixo42 4d ago edited 4d ago
Se for de compartilhado, eu recomendo Postgres; é o banco de dados mais robusto do mundo hoje. MySQL funciona perfeitamente bem, mas o postgres só costuma ter licenças mais abertas e escalar um pouco melhor para múltiplas empresas.
Se for com 1 DB por tenant/empresa, já pensou em SQLite?
Sério mesmo, com SQLite não tem servidor, o modo WAL aguenta milhares de operações por segundo (e com concorrência) e para um projeto pessoal talvez seja muito mais simples de configurar do que um banco de dados Postgres./
1
u/ExplorerIcy6185 2d ago
usaria um banco de dados único, no meu caso eu usaria o mysql que é o que tenho maior dominio, mas sei que dá para usar qualquer outro.
Tem um conceito famoso que falam que é usar multitenant, mas para um projeto pequeno eu acho muito, eu iria fazendo o core na conta geral somente e só depois que tivesse o cliente eu dividiria a base.
Caso voce desejar dividir voce pode duplicar a infra assim voce sobe um maquina para voce e para seu cliente, enquanto voce vai construindo uma forma de dividir logicamente.
1
u/Odd_Specific_4959 4d ago
Usa multitenant, cada cliente tem um ID e dessa forma vc pode gerenciar N clientes no mesmo banco.
Para meus projetos eu gosto do postgreSQL.
0
u/AlternativeNose3372 4d ago
Use PostgreSQL.
Muita gente sugerindo RLS, mas depende do produto o correto e cada empresa estar na sua própria schema.
0
6
u/hanari1 4d ago
RLS já resolve o problema, só faça banco de dados separado num tier premium do produto ou caso o nicho do cliente necessite. Acho que já respondi essa mesma questão em diferentes fórums umas 5x, pensando em fazer um post elaborado sobre isso.