Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2008, 10h17   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 44
Points : 11
Points : 11
Par défaut Conception relation BD

Bonjour,

En attendant de l'aide pour mon sujet dans la section VBA access, je me suis posée pas mal de questions pour les relations entre mes tables.
Je dois gérer une entreprise fictive très complete:
J'ai les clients avec info et les intervenants avec formation et contrat à devoir entrer dans la BD.
Les clients contact l'entreprise pour des prestations et l'ntreprise veut enregistrer les "actions à réaliser" en fonction de ce contact (envoyer devis, prendre rdv,...)
Chaques prestations recquiert 1 ou plusieurs interventions et chaques interventions à 1 ou plusieurs intervenants.

Voilà mon schéma actuel !
Relation.JPG
Je me pose pas ma de question encore, comment gérer la facturation client ? ait je fait les bonnes relations entre mes tables ?
Si vous pouviez m'aider je vous en serrait très reconnaissante
Cydonia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 10h38   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 034
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 034
Points : 18 324
Points : 18 324
Envoyer un message via MSN à CinePhil
1) Pourquoi avoir créé une table 'Info_Client' en relation (1,1) avec la table 'Client' ? Ces informations ne pourraient-elles pas être incluses dans la table 'Client' ?

2) La table 'Action_Contact' est une table matérialisant la relation (*,*) entre les tables 'Contact' et 'Action'. Normalement, on n'ajoute pas une colonne clé primaire, on prend pour clé primaire les clés primaires des tables entrant dans la relation. Tel que c'est représenté avec une clé primaire propre, il est possible d'avoir plusieurs fois la même action pour le même contact ; est-ce le but ?

3) Idem pour la table 'Intervenant_Intervention' et pour la table 'Formation_Intervenant'.

4) Est-il normal qu'il n'y ait pas de relation entre les actions et les interventions ? Comment l'intervenant A va t-il savoir quelles actions il doit réaliser dans le cadre de son intervention pour une prestation donnée ? Les mêmes que pour l'intervenant B sur sa propre intervention pour la même prestation ! A moins qu'il n'y ait réellement aucun rapport entre les actions et les interventions ? Par exemple si l'action est de faire un devis, c'est seulement une fois le devis accepté et la commande enregistrée qu'on passe dans la partie Prestations/Interventions.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 10h50   #3
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 44
Points : 11
Points : 11
Citation:
Envoyé par CinePhil Voir le message
1) Pourquoi avoir créé une table 'Info_Client' en relation (1,1) avec la table 'Client' ? Ces informations ne pourraient-elles pas être incluses dans la table 'Client' ?
oui ça le peut mais j'ai voulu tester la relation 1-1 qui peut être utiliser dans ce cas. Enfin perso je trouve que ça gene pas. Est ce considéré comme un grosse erreur de la laisser ?

Citation:
Envoyé par CinePhil Voir le message
2) La table 'Action_Contact' est une table matérialisant la relation (*,*) entre les tables 'Contact' et 'Action'. Normalement, on n'ajoute pas une colonne clé primaire, on prend pour clé primaire les clés primaires des tables entrant dans la relation. Tel que c'est représenté avec une clé primaire propre, il est possible d'avoir plusieurs fois la même action pour le même contact ; est-ce le but ?
Citation:
Envoyé par CinePhil Voir le message
3) Idem pour la table 'Intervenant_Intervention' et pour la table 'Formation_Intervenant'.
non ce n'est pas le but.. je ne maitrise pas les relations plusieurs a plusieurs et je ne savait pas trop comment faire, merci

Citation:
Envoyé par CinePhil Voir le message
4) Est-il normal qu'il n'y ait pas de relation entre les actions et les interventions ? Comment l'intervenant A va t-il savoir quelles actions il doit réaliser dans le cadre de son intervention pour une prestation donnée ? Les mêmes que pour l'intervenant B sur sa propre intervention pour la même prestation ! A moins qu'il n'y ait réellement aucun rapport entre les actions et les interventions ? Par exemple si l'action est de faire un devis, c'est seulement une fois le devis accepté et la commande enregistrée qu'on passe dans la partie Prestations/Interventions.
En fait les actions ne sont pas faites par les intervenants. "Envoyer un devis", "envoyer de la docu", "prendre RDV chez le client" tout celà sont des actions qui lieraient le chef d'entreprise avec le contact du client enfait ce serrait pus style mémo pour le directeur vis a vis du client ! Je ne sait pas si c'est bien géré actuellement.
Je ne souhaite pas enregistrer les action des intervenants : ils doivent juste connaitre les dates d'interventions et ils savent ce qu'ils ont à faire grace a la table prestation.

Merci pour cette réponse rapide

edit : en fait je me demande quelque chose : je veux pouvoir enregistrer le contact avec le client mais n'es ce pas se compliquer la vie de faire une table contact alors que je pourrais mettre ses informations dans la table clients ?
Cydonia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 11h06   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 034
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 034
Points : 18 324
Points : 18 324
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par Cydonia Voir le message
oui ça le peut mais j'ai voulu tester la relation 1-1 qui peut être utiliser dans ce cas. Enfin perso je trouve que ça gene pas. Est ce considéré comme un grosse erreur de la laisser ?
GROSSE erreur peut-être pas mais en tout cas ce n'est pas un schéma optimisé. Nous sommes bien en présence d'attributs qui concernent directement le client et qui sont uniques pour chaque client donc ils devraient être intégrés à la table Client.

Citation:
En fait les actions ne sont pas faites par les intervenants. "Envoyer un devis", "envoyer de la docu", "prendre RDV chez le client" tout celà sont des actions qui lieraient le chef d'entreprise avec le contact du client enfait ce serrait pus style mémo pour le directeur vis a vis du client ! Je ne sait pas si c'est bien géré actuellement.
Je ne souhaite pas enregistrer les action des intervenants : ils doivent juste connaitre les dates d'interventions et ils savent ce qu'ils ont à faire grâce a la table prestation.
Dans ce cas c'est bon.

Un détail tout de même :
Sur le seul aspect conceptuel, un attribut 'type' ou 'formule' comme dans la table 'Prestation' est souvent externalisable, de manière à éviter des saisies erronées pour le même type ou la même formule (par exemple le type 'soin' qui peut aussi être écrit 'soins' ou 'Soins'..., ce qui donnerait des types différents).
Mais c'est vrai que si ces types ou formules ne sont pas nombreux, on peut dans l'implémentation Access faire une liste de choix directement dans la table.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 11h23   #5
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 44
Points : 11
Points : 11
Citation:
Envoyé par CinePhil Voir le message
GROSSE erreur peut-être pas mais en tout cas ce n'est pas un schéma optimisé. Nous sommes bien en présence d'attributs qui concernent directement le client et qui sont uniques pour chaque client donc ils devraient être intégrés à la table Client.
ok je vais changer ça sous la contrainte
Citation:
Envoyé par CinePhil Voir le message
Un détail tout de même :
Sur le seul aspect conceptuel, un attribut 'type' ou 'formule' comme dans la table 'Prestation' est souvent externalisable, de manière à éviter des saisies erronées pour le même type ou la même formule (par exemple le type 'soin' qui peut aussi être écrit 'soins' ou 'Soins'..., ce qui donnerait des types différents).
Mais c'est vrai que si ces types ou formules ne sont pas nombreux, on peut dans l'implémentation Access faire une liste de choix directement dans la table.
en fait je cherche a faire un systeme assez générique et comme je ne maitrise pas assez les formulaires j'ai peur de devoir creer beaucoup de sous formulaire si j'externalise "formule" et "type".

ps : je vais garder contact tel qu'il est là et j'ai viré les clés primaires de action_contact, intervenant_intervention et de formation_intervenant

merci encore
Cydonia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2008, 00h58   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 034
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 034
Points : 18 324
Points : 18 324
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par Cydonia Voir le message
edit : en fait je me demande quelque chose : je veux pouvoir enregistrer le contact avec le client mais n'es ce pas se compliquer la vie de faire une table contact alors que je pourrais mettre ses informations dans la table clients ?
Je n'avais pas vu cet édit quand j'avais répondu.
1 client peut prendre plusieurs fois contact avec l'entreprise non ?
Alors il FAUT une table Contact séparée !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2008, 16h41   #7
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 44
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 44
Points : 11
Points : 11
Citation:
Envoyé par CinePhil Voir le message
Je n'avais pas vu cet édit quand j'avais répondu.
1 client peut prendre plusieurs fois contact avec l'entreprise non ?
Alors il FAUT une table Contact séparée !
ui effectivement je ne sais pas pourquoi j'avais pensé ça
merci beaucoup CinePhil pour ton aide.

derniere chose : que penser de la table action ? c'est plus comme un mémo pour savoir ce qu'il faut faire pour le client hors des prestations... ne dois-je pas la rattacher a clients plutot que contact ?
Cydonia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2008, 22h38   #8
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 034
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 034
Points : 18 324
Points : 18 324
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par Cydonia Voir le message
derniere chose : que penser de la table action ? c'est plus comme un mémo pour savoir ce qu'il faut faire pour le client hors des prestations... ne dois-je pas la rattacher a clients plutot que contact ?
Le cahier des charges de ton premier message était :
Citation:
l'entreprise veut enregistrer les "actions à réaliser" en fonction de ce contact
Donc on laisse comme ça.
Sauf si ce que tu as écrit est ton interprétation du cahier des charges qui t'a été confié.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h49.


 
 
 
 
Partenaires

Hébergement Web