Estou violando alguma regra da NF no design do meu banco de dados?

8

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:

insira a descrição da imagem aqui

Meu problema é que incluí as applicant_idoutras 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?

novato
fonte
11
Eu não acho que alguém sem conhecimento específico do domínio / empresa comercial possa apenas olhar para o seu modelo de dados e fornecer conselhos realistas sobre chaves, restrições, tipos de dados, etc. uma interpretação estrita de 1NF.
precisa saber é o seguinte

Respostas:

10

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.

Karen Lopez
fonte
11
Há poucas coisas a considerar além de tabelas e colunas :) Meu país tem leis de proteção de dados (prazo de retenção de dados, pessoa tem direito de acesso a seus dados, etc.) e leis de discriminação de idade que devem fazer com que os empregadores pensem pelo menos duas vezes antes de gravar a idade de alguém na fase da entrevista.
precisa saber é o seguinte
5

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.

Marian
fonte