Estou trabalhando em um site de recrutamento e queria saber o que seria melhor entre:
- Uma tabela de usuário, as contas do empregador estão vinculadas a uma empresa (portanto, quando companyID é nulo, é um candidato a emprego)
- Preencha tabelas separadas, uma para candidatos a emprego e outra para empregadores. Dessa forma, a longo prazo, é possível otimizar um pouco mais as consultas se elas se tornarem extremamente bem-sucedidas.
Ambas as abordagens têm prós e contras:
Com 1. seria possível, por exemplo, criar apenas um formulário de login que lidaria com candidatos a emprego e empregadores.
Os dados são os mesmos, mas a entidade é diferente.
Eu tenho sentimentos confusos. O que você acha?
Do ponto de vista da experiência do usuário, seria muito mais fácil oferecer suporte a apenas um "método de login" sem ter que selecionar o tipo de login que o usuário deseja fazer (por exemplo, um menu suspenso para candidato a emprego/empregador). Isso também significaria que todos os nomes de usuário precisariam ser exclusivos.
Se você separar as tabelas, ainda poderá ter consultas ideais, elas podem ter uma junção extremamente pequena associada a elas (ou apenas criar uma exibição desnormalizada de candidatos a emprego e empregadores e você terá o melhor dos dois mundos!).
Acho que a verdadeira pergunta que você deve fazer é: os candidatos a emprego e os empregadores têm dados fundamentalmente diferentes associados a eles ou há uma grande quantidade de sobreposição?