Suis-je en train de violer une règle NF sur la conception de ma base de données?

8

Je suis novice dans la création de base de données ... Je dois la créer pour mon application web de recrutement.

Mon application doit planifier des projections, des examens et des entretiens avec les candidats et enregistrer le résultat dans la base de données.

Mon schéma de base de données est le suivant:

entrez la description de l'image ici

Mon problème est que j'ai inclus le applicant_idsur d'autres tables ... par exemple examen, entretien, type d'examen.

Suis-je en train de violer une règle de normalisation? Si je le fais, que recommandez-vous pour améliorer ma conception?

débutant
la source
1
Je ne pense pas que quiconque sans connaissance spécifique du domaine d'activité / de l'entreprise puisse simplement regarder votre modèle de données et vous donner des conseils réalistes sur les clés, les contraintes, les types de données, etc. Je peux cependant vous dire que toutes les colonnes annulables violeront une interprétation stricte de 1NF.
onedaywhen

Réponses:

10

Il y a peu de choses à considérer autre que la normalisation. Par exemple, vous avez une colonne pour AGE. Allez-vous le mettre à jour chaque année? Comment saurez-vous quand faire cela? Il en va de même pour des années d'expérience.

Il y a des colonnes qui auront probablement plusieurs valeurs pour chaque candidat: école, cours, etc.

Vous pouvez également vérifier votre option sur ces relations. À l'heure actuelle, un candidat doit avoir un examen connexe, mais il n'est pas nécessaire qu'un examen lui soit associé. Je suppose que c'est à l'envers de la façon dont les choses fonctionnent dans la vraie vie. Vous avez des problèmes similaires avec toutes les autres relations.

Il est utile de lire les relations après les avoir créées.

Karen Lopez
la source
1
Il y a peu de choses à considérer autres que les tableaux et les colonnes :) Mon pays a des lois sur la protection des données (délai de conservation des données, la personne a le droit d'accéder à leurs données, etc.) et des lois sur la discrimination fondée sur l'âge qui devraient au moins faire réfléchir les employeurs avant d'enregistrer l'âge de quelqu'un au stade de l'entretien.
onedaywhen
5

Je suppose que vous avez réellement besoin d'une relation plusieurs à plusieurs entre votre table de candidature et les autres tables principales (sélection et examen principalement). Que si vous aviez une présélection, il y aurait plus d'un demandeur (et la situation similaire pour les autres tableaux).

Je verrais une entrevue avec un seul candidat, mais un examen ou une séance de sélection avec plus d'un candidat. Dans ce cas, vous aurez besoin d'une table de relations qui reliera la présélection au demandeur.

Voir ici sur les relations plusieurs-à-plusieurs.

Marian
la source