Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception

Conception Le forum qui vous aide à résoudre vos questions relatives à la modélisation de votre base de données sous Access.

Réponse
 
Outils de la discussion
Vieux 25/08/2008, 10h03   #1 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: août 2008
Messages: 24
Par défaut Projet Access : relations et cardinalités

Bonjour à tous,
On m'a confié un projet sous Access et j'avoue avoir oublier un peu mes cours de bases de données. J'ai réalisé un schéma relationnel sous Access mais ce serait cool si qqn pouvait me dire s'il est correcte ou pas.

Il s'agit d'un projet en recherche clinique. Pour une étude clinique, les patients ont un cahier dans lequel le médecin marque toutes sortes d'informations à différents temps...on va dire qu'un cahier est divisé en visites et dans chaque visite il y a 1 ou plusieurs pages.
Mon projet va permettre de suivre l'évolution de la réception de ces cahiers en sachant qu'on peut recevoir les pages visite apres visite...pas tout d'un coup.
Une étude contient plusieurs patients, et plusieurs personnes travaillent sur une étude.

Voici mes tables :

- PERSONNEL (PersonID, Prenom, Nom, Fonction)
- TRAVAILLE_SUR (PersonID, EtudeID)
- ETUDE (EtudeID, Produit, Indication, VisiteNb, VisiteNom, PageNb, PageNom, DateReception, Status)
- PATIENTS (PatientID, PatientNb, Centre, Initiales, EtudeID)

Le but etant d'avoir un formulaire ou je pourrais saisir par patient et par numéro d'étude, la date de réception des pages et leur statut (complet, blanche, manquante)

Pouvez vous me dire déjà si les tables conviennent ?

Merci beaucoup !!
melmig06 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 10h42   #2 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 320
Envoyer un message via MSN à CinePhil
Par défaut

Citation:
Pour une étude clinique, les patients ont un cahier
Ce qui donne en MCD Merise :
Patients -0,1----Avoir----1,1- Cahiers
Ce qui donne les tables :
Patients(PatientId, ...)
Cahiers(CahierId, PatientId, ...)

Citation:
un cahier est divisé en visites et dans chaque visite il y a 1 ou plusieurs pages
Ce qui donne en MCD Merise :
Cahier -0,n----Diviser----1,1- Visites -0,n----Contenir----1,1- Pages
Ce qui donne les tables :
Cahiers(CahierId, PatientId, ...)
Visites(VisiteId, CahierId, ...)
Pages(PageId, VisiteId, ...)

Citation:
Une étude contient plusieurs patients
1) Soit on considère qu'un patient peut participer à plusieurs études.
On doit alors modifier l'association entre Patients et Cahiers car un patient peut avoir plusieurs cahiers.
Ce qui donne en MCD Merise :
Etudes -0,n----Comprendre----0,n- Patients -0,1----Avoir----0,n- Cahiers
Ce qui donne les tables :
Etudes(EtudeId, ...)
Patients(PatientId, ...)
Comprendre(EtudeId, PatientId, ...)
Cahiers(CahierId, ...)
Avoir(PatientId, CahierId, ...)

2) Soit on considère qu'un patient ne peut participer qu'à une étude et on peut laisser l'association précédente tel quel.
Ce qui donne en MCD Merise :
Etudes -0,n----Comprendre----1,1- Patients -0,1----Avoir----1,1- Cahiers
Ce qui donne les tables :
Etudes(EtudeId, ...)
Patients(PatientId, EtudeId, ...)
Cahiers(CahierId, PatientId, ...)

Citation:
plusieurs personnes travaillent sur une étude.
Ce qui donne en MCD Merise :
Personnel -0,n----Travailler----0,n- Etudes
Ce qui donne les tables :
Personnel(PersonId, ...)
Etudes(EtudeId, ...)
Travailler(PersonID, EtudeID, ...)
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 13h52   #3 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: août 2008
Messages: 24
Par défaut

Merci beaucoup

Ce que je n'arrive pas bien à imaginer c'est qu'a chaque étude correspond un schema de cahier. Une etude peut avoir 5 visites, une autre 10 etc...donc dans ma table visite je peux avoir des VisitID incrémentaux et ensuite des doublons dans le numero de visite par exemple (deux visites qui ne s'appellent pas pareil dans deux etudes differentes mais qui ont le meme numero de visite par example).

De plus, l'élément à intégré maintenant, c'est que chaque page/visite est trackée (suivie) grace à une date de tracking et un statut. Alors dois-je créé une table tracking pour les pages, une pour les visites ?
melmig06 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h09   #4 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 320
Envoyer un message via MSN à CinePhil
Par défaut

Citation:
Envoyé par melmig06 Voir le message
Ce que je n'arrive pas bien à imaginer c'est qu'a chaque étude correspond un schema de cahier. Une etude peut avoir 5 visites, une autre 10 etc...donc dans ma table visite je peux avoir des VisitID incrémentaux et ensuite des doublons dans le numero de visite par exemple (deux visites qui ne s'appellent pas pareil dans deux etudes differentes mais qui ont le meme numero de visite par example).
Euh... moi pas trop comprendre là !
Le MCD que j'ai tiré de ton cahier des charges montre que Visites est en association avec Cahiers et avec Pages.
L'enchaînement des tables est en fait :
Etudes ==> Patients --> Cahiers ==> Visites ==> Pages
Ce qui signifie en français que pour une étude, j'ai plusieurs patients qui ont chacun un cahier dans lequel on enregistre des données concernant plusieurs visites à raison de plusieurs pages par visite.
(Je viens d'improviser cette représentation et je suis assez content de moi ! )


Citation:
De plus, l'élément à intégré maintenant, c'est que chaque page/visite est trackée (suivie) grace à une date de tracking et un statut. Alors dois-je créé une table tracking pour les pages, une pour les visites ?
Intuitivement, je dirais qu'une visite s'effectue à une certaine date. On aura donc un attribut DateVisite dans la table Visites.
Si tu entends par statut le fait qu'une visite peut être d'un certain type à choisir dans une liste (Enregistrement, Diagnostic, Traitement, Contrôle, Bilan...), tu peux externaliser cette liste dans une autre table et mettre l'ID du type de visite en clé étrangère dans la table visite. On aura bien ainsi le couple (DateVisite, TypeVisite) enregistré et donc un suivi possible de l'évolution des visites au cours de l'étude.

Pour les pages, toujours intuitivement sans précisions complémentaire sur ce que recouvre cette notion de statut, j'imagine qu'il peut s'agir de suivre l'évolution de la prise en compte de ce qui est inscrit sur les pages d'une visite (Enregistré, Pris en compte, Soldé...). Le cas est alors un peu différent car le statut d'une page va évoluer dans le temps. On a alors une association n,m entre Pages et Statuts :
Pages -0,n----Suivre----0,n- Statuts
Ce qui donne les tables :
Pages(PageId, VisiteId, ...)
Statuts(StatutId, ...)
Suivre(PageId, StatutId, DateSuivi, ...)
J'ai tout bon ou j'ai rien compris ?
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h24   #5 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: août 2008
Messages: 24
Par défaut

Citation:
Euh... moi pas trop comprendre là !
Le MCD que j'ai tiré de ton cahier des charges montre que Visites est en association avec Cahiers et avec Pages.
L'enchaînement des tables est en fait :
Etudes ==> Patients --> Cahiers ==> Visites ==> Pages
Ce qui signifie en français que pour une étude, j'ai plusieurs patients qui ont chacun un cahier dans lequel on enregistre des données concernant plusieurs visites à raison de plusieurs pages par visite.
(Je viens d'improviser cette représentation et je suis assez content de moi ! )
OK parfait, je vais implementer ca et vais bien voir ce que ca donne merci !

Citation:
Intuitivement, je dirais qu'une visite s'effectue à une certaine date. On aura donc un attribut DateVisite dans la table Visites.
Si tu entends par statut le fait qu'une visite peut être d'un certain type à choisir dans une liste (Enregistrement, Diagnostic, Traitement, Contrôle, Bilan...), tu peux externaliser cette liste dans une autre table et mettre l'ID du type de visite en clé étrangère dans la table visite. On aura bien ainsi le couple (DateVisite, TypeVisite) enregistré et donc un suivi possible de l'évolution des visites au cours de l'étude.
Non pas tout à fait mais tu ne peux pas savoir, en fait on veut juste connaitre la date à laquelle nous avons recu les pages du d'un cahier et choisir leur statut : cad si la page est remplie, si elle est vide, barrée, ou tout simplement absente.
Effectivement la page peut avoir plusieurs status dans le cour de l'étude mais au final un seul statut sera dans la base donc je pense qu'on peut dire :

Pages -0,1----Suivre----0,n-Statuts
Donc peut etre que je peux rapatrier l'info "DatePageRecue" et "StatusPage" dans la table Pages ?

Merci beaucoup.
melmig06 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h27   #6 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 320
Envoyer un message via MSN à CinePhil
Par défaut

Citation:
Envoyé par melmig06 Voir le message
Pages -0,1----Suivre----0,n-Statuts
Donc peut etre que je peux rapatrier l'info "DatePageRecue" et "StatusPage" dans la table Pages ?
Bien sûr oui ! La date de réception de la page et son statut sont des attributs de la page.
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h34   #7 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: août 2008
Messages: 24
Par défaut

Ok merci beaucoup pour ton aide.

Je mets ca en place et je posterais le schema relationnel d'Access, si jamais l'un de vous trouve une erreur :-))

Merci en tout cas
melmig06 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h48   #8 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: août 2008
Messages: 24
Par défaut



Voila.

Ca va pas etre trop chiant d'attribuer par exemple un cahier à un patient avec les ID qui sont en numéros Auto ?
melmig06 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 15h01   #9 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 320
Envoyer un message via MSN à CinePhil
Par défaut

Citation:
Envoyé par melmig06 Voir le message
Ca va pas etre trop chiant d'attribuer par exemple un cahier à un patient avec les ID qui sont en numéros Auto ?
Avec les formulaires d'Access, pas du tout !
Voir tutoriels.
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 15h04   #10 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: août 2008
Messages: 24
Par défaut

Oki merci beaucoup.

Je vais chercher alors des tutos qui explique un peu ça.
melmig06 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 15h59   #11 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: août 2008
Messages: 24
Par défaut

Arg désolée j'ai encore une tite question...

Ca me gene un peu d'attribuer un Cahier à 1 patient car ca va me faire une table énorme vu le nombre de patients par etude et le nombre d'études....de plus l'attribution des cahiers pour chaque patients d'une étude risque d'etre fastidieuse....

Est ce que par hasard je peux mettre plutot en relation Etude avec Cahier ? Une étude entraine la création d'un cahier.
Je pense que je pourrais tout de meme faire des formulaires pour tracker mes pages par patient meme si ce n'est plus la table patient qui est lié à Cahier ?

Désolée...
melmig06 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 17h02   #12 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 320
Envoyer un message via MSN à CinePhil
Par défaut

Citation:
Envoyé par melmig06 Voir le message
Est ce que par hasard je peux mettre plutot en relation Etude avec Cahier ? Une étude entraine la création d'un cahier.
Ce n'est pas ce qui était dit dans le message de départ !
Les questions à se poser :
- Un cahier ne concerne t-il qu'une étude mais plusieurs patients ?
- Ou bien ne concerne t-il qu'un patient pour une seule étude ?
- Si c'est le premier cas, comment faire pour relier un patient à une étude et aux pages d'un cahier.

Citation:
Je pense que je pourrais tout de meme faire des formulaires pour tracker mes pages par patient meme si ce n'est plus la table patient qui est lié à Cahier ?
Ben à ce moment là si je comprends bien la page est associée à un et un seul patient ?

Soyez sûre du besoin pour bien modéliser.
J'ai donné la méthode dans les messages précédents, à vous de l'adapter à votre cas précis :
1) Écrire une phrase non ambiguë en français.
2) Écrire ou dessiner l'association entre les entités avec les cardinalités.
3) En déduire les tables à créer ou à modifier.
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide