Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1731 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Problème d'analyse

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème d'analyse

n°2215646
eduenss
Posté le 10-01-2014 à 09:45:23  profilanswer
 

Bonjour,
 
Je travaille sur une gestion de planning,
 
Voici ma BDD à l'heure actuelle:
 
http://img15.hostingpics.net/pics/653497bdd.jpg
 
Journée représente une journée de travail, elle contient des heures qui ont différentes catégories (heures double/triples etc.).
(L'id n'est qu'un int autoincrémenté)
 
Donc je me suis rendu compte en développant que ma BDD n'était pas du tout au point.
 
Je pense mettre une entité faible Catégorie à Heure, et dans heure ajouter une PK (Heure,Jour).
>>> les heures n'ont pas toute la même catégorie suivant les jours(ex: 15h le lundi != 15h le samedi).
Je gère les catégorie des 24h pour chaque jour.
Donc en gros au final j'aurais 168 lignes
 
Alors, j'ai 2 questions, comment résoudriez vous ce problème de gestion?
 
et la deuxième, si ma PK contient 2 colonnes dois-je représenter aussi les 2 colonnes pour une clé étrangère?
 
PS: j'ai remplacé "type" par "catégorie", pour eviter les confusions.
 
Ma GROSSE question est : comment gérer les clé étrangère pour une PK à double colonnes?
 
Merci d'avance!

mood
Publicité
Posté le 10-01-2014 à 09:45:23  profilanswer
 

n°2215657
rufo
Pas me confondre avec Lycos!
Posté le 10-01-2014 à 10:38:33  profilanswer
 

Pour ma part, si d'un point de vue théorique (Merise), ma clé primaire doit être une compo de plusieurs clés, ben je le fais pas, toutes mes clés primaires sont des ID auto-incrémentés (un entier donc) et je m'en sert comme clé étrangère dans les autres tables. Et pour accélérer les requêtes, je rajoute des index sur les champs identifiés comme servant à la compo de ma clé primaire théorique, quitte à mettre des index type "unique".
 
C'est bien plus simple à gérer et ça marche très bien. D'autant que certains SGBD ne savent pas faire des clés primaires comme des étant des compos de plusieurs champs. ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2215659
eduenss
Posté le 10-01-2014 à 10:49:24  profilanswer
 

Cette solution me parait acceptable :), c'est dingue il arrive des moments où on cherche absolument à se compliquer la vie pour rien :D!
 
Merci, je suis toujours ouvert si quelqu'un a des idées pour le modèle par contre.


Message édité par eduenss le 10-01-2014 à 10:50:22
n°2215667
rufo
Pas me confondre avec Lycos!
Posté le 10-01-2014 à 11:54:07  profilanswer
 

Pour avoir des idées, faudrait plutôt que tu donnes les règles de gestions. Comme ça, on partira pas sur des idées préconçues déduites de ton actuel MCD ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2215672
eduenss
Posté le 10-01-2014 à 12:29:13  profilanswer
 

J'ai eu plus où mois ma réponse ici http://fr.openclassrooms.com/forum [...] e-85106941

n°2215728
gpl73
Posté le 10-01-2014 à 15:18:23  profilanswer
 

24*7 = 168 lignes oui et non ...
ta table heures = id, heure, type, rémuneration...  
donc pour une même heure tu peux avoir plusieurs types et de plusieurs rémunérations... (si tu as des échelons de rémunarations différents en fonction de tes intervenants)...
7 jours *24 h* x types * x rémunérations  
c'est donc bien "infini" ...  
en plus ta table heure, c'est bizzard, ne comporte q'une zone heure? tu n'as pas besoin d'une période? HD et HF?
car si j'ai bien vu et lu, tu as amplitude dans une de tes tables, relatives à l'intervention...
 
Comment gères tu les jours fériès?, les heures de nuit de "jours fériés"? (via des types d'heure différents avec des rémunérations différentes?)
Comment gères tu les interventions qui passent d'une tranche horraire de 1 à une tranche horraire de 2?  
ex: ton intervention commence le vendredi à 17h et elle se finit le lundi à 15h?  
Est ce que tu as prévu de gérer des groupes d'intervenant?
 
Pourquoi, ne pas utiliser des champs DH début et DH fin (timestamp)? puis après utiliser les fonctions bien utiles liées de ce type de champs?
date, heure, jour de la semaine...


Message édité par gpl73 le 10-01-2014 à 15:35:48
n°2215747
rufo
Pas me confondre avec Lycos!
Posté le 10-01-2014 à 16:35:45  profilanswer
 

A mon sens, une intervention doit avoir un timestamp de début et de fin. Le calcul de la rémunération de l'intervention en fonction des différentes périodes/catégories... qu'elle couvre relève de la logique métier, en fonction de paramètres définis dans un fichier de conf ou en base.
 
Ex :  
J'ai une intervention qui débute à 17h un vendredi et qui se finit un samedi à 18h -> 1 seule entrée dans la table. Charge à l'appli de découper en période de rémunération différente, par ex :
17h->20h "tarif normal", 20h->24h du vendredi "tarif nuit jour normal, 00h->08h du samedi "tarif nuit jour férié", 08h->18h du samedi "tarif jour férié.
 
Après, si une intervention peut être composé de plusieurs types d'activités, on peut faire une entité au-dessus de la table interventions, (ex : table "prestations" ) qui aura une relation 1-n avec la table "interventions". La table prestations n'aura pas besoin de date début et fin car ça sera la date min de et date max des prestations qui la composent. Après, à des fins d'optimisation ou facilité le requêtage, pourquoi pas ajouter ces 2 champs dans "prestations". Mais tant que tu peux respecter une forme 3NF de ta BD, ça sera pas plus mal ;)


Message édité par rufo le 10-01-2014 à 16:36:20

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2215910
eduenss
Posté le 13-01-2014 à 00:08:53  profilanswer
 

Ce n'est qu'une esquisse pour le moment,c'est pour ça qu'il manque des données, pour les interventions finalement je n'ai pas à le gérer je dois uniquement faire le compte des heures d'une journée de travail.
 
pour la gestion des heures, j'utilise un identifiant composé jour+heure, je n'ai pas besoin d'autres choses pour gerer le début et fin d'une journée de travail (j'ai la date de début dansla table).
 
Je n'ai finalement pas à calculer la rémunération, je ne gère donc plus la table intervention.
 
ma table heure aura bien 168 lignes, car le but et de calculer automatiquement les heures sans rien avoir a choisir.
une option sera ajouté pour préciser si c'est un jour férié ou autre.
 
Merci de votre intéret, je pense avoir résolu mon problème pour le moment.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Problème d'analyse

 

Sujets relatifs
problème insertion images site webProbleme de comptage (SQL Oracle)
problème d'excécution 13un probleme en matlab
aidez moi svp probleme php vers wordprobleme d'analyse
Petit problème d'analyse 3DProbleme d'analyse lexicale
probleme d' analyse syntaxiqueprobleme d analyse pour redondance
Plus de sujets relatifs à : Problème d'analyse


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR