1
resposta

[Dúvida] PHP Laravel - Postgres DB - Usar tabelas de dominio ou Enums?

Ola! Temos um banco de dados normalizado e usamos tabelas de dominio para algumas informacoes. Por exemplo, uma tabela que contem URL's para os tipos de midia de um produto. Uma outra tabela possui os tipos de media: image, video, thumbnail, etc.

tabela media contem id, descricao

tabela produto_media contem id, tipo_media_id, url

Um dos devs esta sugerindo deletar a tabela media e usar enums na aplicacao, com o argumento de usar menos espaco de banco e eliminar joins.

Porem, o banco de dados pode ser acessado por outras applicacoes/tecnologia, incluindo integracoes para criar um data lake ou outras iniciativas na area de Ciencia de Dados.

Qual das duas alternativas seria a mais indicada? Manter as tabelas de dominio. Usar enum nas aplicacoes e remover as tabelas de dominio. Manter as tabelas de dominio e usar enum nas aplicacoes.

Obrigado!

1 resposta

Olá, Kennedy! Como vai?

A escolha entre usar tabelas de domínio ou Enums depende muito do contexto e das necessidades do seu projeto. Ambas as opções têm suas vantagens e desvantagens.

Se você optar por usar tabelas de domínio, isso pode facilitar a manutenção de dados, especialmente se você tem muitos valores que podem mudar ao longo do tempo. Além disso, tabelas de domínio são mais flexíveis e podem ser acessadas por diferentes aplicações, como você mencionou.

Por outro lado, usar Enums pode economizar espaço no banco de dados e eliminar joins, o que pode melhorar o desempenho da sua aplicação. No entanto, Enums são menos flexíveis que tabelas de domínio e podem ser mais difíceis de manter se os valores mudarem com frequência.

Uma terceira opção seria manter as tabelas de domínio e usar Enums nas aplicações, o que pode proporcionar o melhor dos dois mundos. No entanto, isso pode tornar a manutenção mais complexa, pois você teria que manter tanto as tabelas de domínio quanto os Enums.

Em resumo, a escolha entre tabelas de domínio e Enums depende das necessidades do seu projeto. Se você precisa de flexibilidade e a possibilidade de acessar os dados de diferentes aplicações, tabelas de domínio podem ser a melhor escolha. Se você está mais preocupado com o desempenho e o uso de espaço no banco de dados, Enums podem ser a melhor opção.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.