Bonjour à tous.
Un bête problème de conception, pour lequel j'ai 2 solutions et je ne sais laquelle choisir.
Soit une architecture de tables pour le domaine RH (en * les champs de la clé) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Identité : - nom - prénom * matricule
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Revenu : * matricule * mois - revenuOn se fiche dans le problème présent de la table Identité, je ne l'ai mise là que pour la forme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Affectation : * matricule * mois * service - coefficient
Mon problème est dans la relation entre Revenu et Affectation.
En effet, un individu a UN SEUL revenu par mois (donc la clé de Revenu est {matricule, mois}).
Mais un individu peut avoir plusieurs affectations par mois : il y a un coefficient par service. par exemple il peut être à 0,6 sur la RH et à 0,4 sur le Commercial.
Donc je créé une ligne pour chaque affectation dans ma table des Affectations.
Jusque là tout va bien. MAIS, car il y a un MAIS, la RH voudrait aussi pouvoir
1) connaître le service sur lequel l'individu est affecté en majorité
2) pouvoir sortir les revenus de l'individu affectés à 100% à ce service là.
Ce qui veut dire que pour Mr TOTO, matricule 001 qui en janvier a gagné 1000€ par mois et qui est affecté à 0,6 à RH et 0,4 au Commercial ils veulent pouvoir faire :
etTOTO 001 janvier RH 600 €
TOTO 001 janvier Commercial 400 €
Bon soit, ça ne se discute pas.TOTO 001 janvier RH 1000 €
Mon problème est le suivant : soit je rajoute une ligne dans ma table des affectations qui contient le service majoritaire avec un coefficient de 1 et un indicateur comme quoi c'est le majoritaire, soit je fait une autre table à côté qui ne contient QUE les services majoritaires. Ce qui donnerait ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Affectation : * matricule * mois * service * majoritaire - coefficientou ça :MATRICULE MOIS SERVICE MAJORITAIRE COEFFICIENT
001 janvier RH 0 0,6
001 janvier Commercial 0 0,4
001 janvier RH 0 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Affectation : * matricule * mois * service - coefficient Affectation_majoritaire : * matricule * mois - serviceQuels sont les pour et les contre à votre avis ?MATRICULE MOIS SERVICE COEFFICIENT
001 janvier RH 0 0,6
001 janvier Commercial 0 0,4
MATRICULE MOIS SERVICE
001 janvier RH
Je serais plutôt pour la 1ere solution : plus simple, plus maintenable, 1 seule table mais une clé plus longue, qui intègre 2 visions différentes de la donnée en 1 seule fois.
Partager