IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

Projet Access : relations et cardinalités


Sujet :

Modélisation

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 24
    Points : 7
    Points
    7
    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 !!

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    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, ...)

    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, ...)

    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, ...)

    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. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 24
    Points : 7
    Points
    7
    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 ?

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    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 ! )


    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. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    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 !

    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.

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    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. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 24
    Points : 7
    Points
    7
    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

  8. #8
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 24
    Points : 7
    Points
    7
    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 ?

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    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. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  10. #10
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    Oki merci beaucoup.

    Je vais chercher alors des tutos qui explique un peu ça.

  11. #11
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 24
    Points : 7
    Points
    7
    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...

  12. #12
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    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.

    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. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

Discussions similaires

  1. Réponses: 9
    Dernier message: 05/02/2008, 14h53
  2. [vba] Récupérer le login (projet access)
    Par fix105 dans le forum Access
    Réponses: 8
    Dernier message: 05/02/2006, 13h41
  3. Sécurité projet Access
    Par fix105 dans le forum Projets ADP
    Réponses: 5
    Dernier message: 01/02/2006, 09h24
  4. [vb][access]relation
    Par Alex35 dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/12/2005, 11h14
  5. protection d'un projet access 2000
    Par ngnoteu dans le forum Access
    Réponses: 2
    Dernier message: 23/11/2005, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo