Sou iniciante na criação de banco de dados ... preciso criá-lo para meu aplicativo da web de recrutamento.
Minha inscrição precisa agendar exames, exames e entrevistas de candidatos e salvar o resultado no banco de dados.
Meu esquema de banco de dados é o seguinte:
Meu problema é que incluí as applicant_id
outras tabelas ... por exemplo, exame, entrevista, tipo de exame.
Estou violando alguma regra de normalização? Se sim, o que você recomenda para melhorar meu design?
normalization
database-design
novato
fonte
fonte
Respostas:
Há poucas coisas a considerar além da normalização. Por exemplo, você tem uma coluna para AGE. Você vai atualizar isso todos os anos? Como você saberá quando fazer isso? O mesmo vale para anos de experiência.
Existem algumas colunas que provavelmente terão vários valores para cada candidato: Escola, Curso etc.
Você também pode verificar sua opção nesses relacionamentos. No momento, um candidato deve ter um exame relacionado, mas um exame não precisa ter um candidato associado a ele. Eu acho que isso é o contrário de como as coisas funcionam na vida real. Você tem problemas semelhantes com todos os outros relacionamentos.
Ajuda se você ler os relacionamentos depois de criá-los.
fonte
Eu acho que você realmente precisa de um relacionamento de muitos para muitos entre a sua tabela de candidatos e as outras tabelas principais (triagem e exame principalmente). Que, se você tiver uma triagem, contenha mais de um candidato (e a situação semelhante para as outras tabelas).
Eu via uma entrevista com um único candidato, mas uma sessão de exame ou triagem com mais de um candidato. Nesse caso, você precisará de uma tabela de relações que vinculará a Triagem ao Candidato.
Veja aqui sobre os relacionamentos muitos-para-muitos.
fonte