|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : juillet 2004 Messages : 21 ![]() |
Bonjour,
J aurais besoin d'un petit conseil Je possede les tables suivantes : table avec liste d employé table avec liste des projets Je souhaite creer une table pour savoir combien de jour a travailler TEL employé à travailler sur TEL projet au cours de TEL semaine Mon idée est don la suivante : T_Timesheet (année, semaine, ID_employe, ID_projet, Nbre_jours) Je prendrait les 4 premiers champs comme clé primaire ce qui correspond à la réalité. Cependant est ce que ce n'est pas bcp d avoir 4 champ pour identdier un enregistrement? Dois-je procédé autrement? Devrais-je créer une table avec le liste des semaine et un Identifiant pour chaque semaine? Merci de me donner vos idées... François B. |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
1°) la clé primaire c'est {ID_employe, ID_projet} et c'est tout... tu n'a bien qu'une année et un nombre de jour donné pour un employé et un projetr donné
2°) Moi je préfére éviter les clés primaires composites parce que ça complique les jointures (2 jointures au lieu d'une) mais il faut aussi éviter de mettre trop de colonne (plus de 2 à mon avis) parce qu'alors l'index sera trop gros et donc moins intéressant à utiliser. Dans le cas de plus de 2 colonnes dans la clé primaire, je crée une colonne ID qui sera une séquence et clé primaire technique 3°) Tu peux très bien ajouter un index sur le numéro de la semaine pour la recherche en plus de la clé primaire |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : juillet 2004 Messages : 21 ![]() |
Tout d'abord merci pour ta reponse rapide et tes conseils.
Une petite précision en fait cela se passe comme ceci: Chaque semaine chaque employe rempli le nombre de jour qu il a travailler sur chaque projet. il faut donc ajouter la seamine dans la clé primaire à mon sens. Je ferais donc ceci: ID "clé informatique" semaine avec un index année ID_projet ID_employe Nbre de jour As tu un commentaire? Tant que j y suis je me permet une autre petite question, on m a conseillé précédement d utiliser un GUID pour les clé primaire informatique plutot qu'un numéro de séquence. Qu'en penses tu? Voila et encore merci pour ton aide |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
A oui effectivement... en fait j'aurais pas fait ça du tout
J'aurais plutôt fait une table en plus pour lier le projet à ses semaines et c'est cette table supplémentaire que j'aurais lié à l'employé. Je ne trouve pas ça super de mélanger le projet avec la période travaillé... m'enfin là c'est très personnel le GUID n'a aucun intérêt si tu veux juste une clé primaire... la séquence suffit largement puisque la présence d'éventuels trous dans la suite d'ID n'a aucune importance |
|
|
00
|
|
|
#5 | |
|
Invité régulier
![]() Inscription : juillet 2004 Messages : 21 ![]() |
Citation:
oups je te suis pas en fait g une table avec les projet en cours une avec les employé ce que je veux c'est créer une table qui va me permettre de savoir qui a travailler sur quel projet, quand et combien de temps Chaque employé devant remplir chaque semaine le temps qu il a passé sur chaque proget ![]() donc chaque semaine l employé rempli sa Timesheet en insiquant combien il a travailler sur le detail d'une etudes Les details d'etudes faisant partie d'une étude plius globale Cette etudes globale ayant deux responsables (employé) Voila j espere que tu comprend un peu mieux ce que je veux faire Encore merci pour tes conseils PS: je peux évidement comprendre que tu n aies pas le temps de repondre à un probleme si global |
|
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Pour revenir à ta question... tu n'as pas besoin de PK Une PK n'est utile QUE si elle est référencée dans une autre table. Ici un simple index unique suffit... et effectivement il devra être sur les 3 colonnes puisque c'est bien le triplet qui est unique |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : juillet 2004 Messages : 21 ![]() |
oula ca ressemble quasi a de l'helpdesk en direct
(non je deconne c'est plus rapide ici Merci C'est vrai que je sais pas pourquoi je me suis entêté à vouloir faire absolument une PK (on m'avait telement enfoncé dans la tête que c'était important Sinon je n ai en fait qu'une table employé mais j arrive pas à faire comprendre à access qu il y a un ID d'employé pour le coordinateur et un ID différent pour la carto. dans les représentation des tables de lien access crée donc une "image" de ma table "employé" PS : merci pour la rem sur le GUID, je vais modifier cela PS2: j'espère que tu te lasseras pas de la phrase mais :"Merci pour ton aide" |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Pas de probléme, le forum est là pour ça
Que la force soit avec toi |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com