Bonjour,
Je ne suis pas informaticien et je réalise mon premier MCD.
Avant de créer la base PostgreSQL, j’ai encore quelques questions avant de basculer sur le MLD et le code SQL associé (sous DB-Main).
La question principale concerne les fonctions/métiers des salariés.
Nous souhaitons pouvoir faire des recherches par service, par pouvoir décisionnel, par fonction et par spécialité.
Afin d’éviter la redondance et aussi d’avoir le moins de fonctions possibles, tout en gardant le niveau de précision souhaité, j’ai scindé les intitulés de fonctions en 3 parties :
Catégorie = composant d’une fonction qui se retrouve dans des métiers et services différentsExemple : responsable, Directeur, Secrétaire, assistant, etc…
Précision = composant d’une fonction liée à 1 serviceExemple : Commercial, Technique, Informatique, Achats, etc….
Spécialisation CAO = tout composant de la fonction liée à la Conception Assistée par Ordinateur et indépendante du resteExemple = Mécatronique, Méthodes, Calculs/Simulation, etc….
Un intitulé de fonction doit avoir au minimum 1 de ces 3 valeurs de renseignée, mais pas nécessairement les 2 autres.
Niveau vue, cela donne :
CONTACT -- 1,1 – Exercer – 0,N – FONCTION
FONCTION – 0,1 – Catégoriser – 1,N – JOB_CATEGORIE
FONCTION – 0,1 – Spécialiser – 1,N – SPE_CAO
FONCTION – 0,1 – Préciser – 1,N – JOB_PRECISION
(Et : JOB_PRECISION – 1,1 – Concerner – 1,N – SERVICE)
PS : oui, pour nous, un contact n’est en base qu’avec une fonction.
La question est la suivante :
J’aimerai qu’un métier ne se retrouve qu’1 fois dans la table FONCTION (car la clé primaire de FONCTION va migrer dans la table CONTACT), puis-je définir des occurrences uniques/clés avec des valeurs nulles ? Exemple :
FONCTION_ID : 12
JOB_CATEGORIE_ID : Null
SPE_CAO_ID : 07
JOB_PRECISION_ID : Null
Ok, je viens d'apprendre que ce n'est pas possible, par contre, je ne sais pas comment faire du coup car je ne peux pas non plus stocker de valeur Null si j'ai bien compris, cela posera trop de problème.
Comment puis-je procéder ?
Merci par avance pour vos réponses.
Partager