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:
Mon problème est que j'ai inclus le applicant_id
sur 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?
normalization
database-design
débutant
la source
la source
Réponses:
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.
la source
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.
la source