Partage
  • Partager sur Facebook
  • Partager sur Twitter

creation mcd : deux entités en une seule

9 novembre 2017 à 17:47:11

Bonjour  à tous; je suis entrain de faire une conception et j'ai pas pu extraire mon mcd ; ma conception consiste à gérer le suivi  des vaccins(tous types : nouveau nées,malade,raje..ect) dans un centre de santé le problème est dans l'entité vacciné est ce qu'il faut creer une seule entité pour tous les vaccinés malgré ils ont pas les mêmes attributs aussi les vaccins ont des différent rappels .......svp comment faire ?
  • Partager sur Facebook
  • Partager sur Twitter
9 novembre 2017 à 18:35:01

Bonjour,

Selon moi, vacciné n'est pas une entité, mais une relation entre l'entité patient et l'entité vaccin ...

Je te conseille de nouveau la lecture du document "Conception BDD" (cf. ma signature).

Sinon, quel est ton MCD actuel ?

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
9 novembre 2017 à 19:19:03

Salut, j'ai envoyé le mcd

-
Edité par SamiaAniss 10 novembre 2017 à 18:55:33

  • Partager sur Facebook
  • Partager sur Twitter
10 novembre 2017 à 17:12:39

Je répète donc :

Benzouye a écrit:

vacciné n'est pas une entité, mais une relation entre l'entité patient et l'entité vaccin

Cela signifie que ton modèle pourrait être :

  • vaccin ( id_vaccin [pk], nom, marque, etc. )
  • patient ( id_patient [pk], nom, prenom, etc. )
  • vaccination ( id_vaccination [pk], date_vaccin, id_patient [fk], id_vaccin [fk], etc. )

Je ne sais pas ce que tu as fait, peut-être nous montrer ton MCD ?

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
11 novembre 2017 à 21:26:26

Salut Mr benzouye, je te passe mes remerciements pour ton aide,j'ai posté sur le site un sujet sur la gestion des archives du personnel d'une administration (Mcd), c'est tu peux m'aider stp.

-
Edité par SamiaAniss 23 novembre 2017 à 20:49:59

  • Partager sur Facebook
  • Partager sur Twitter
13 novembre 2017 à 14:01:31

Je te conseille d'utiliser un logiciel de modélisation (jMerise par exemple) pour faciliter la création et la modification de ton MCD. En plus cela te permettra de générer également le code SQL de création de la base ...

Ton MCD me semble globalement correct, mais je changerai quand même la différence malade/nouveau-né. Pas deux entités différentes, mais une seule ... avec une date de naissance dedans qui te permet de déterminer si c'est une nouveau-né ou pas ...

Après tu peux aussi améliorer avec une entité mère "Personne" qui hérite sur 3 entités filles "Médecin", "Infirmière", "Patient" ... Cela donnerait :

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
19 novembre 2017 à 17:50:00

Salut mr Benzouye, Merci bcp pour cette reponse , j'ai pas bien compris l’idée d'une entité mère personne car j'applique la méthode merise pour la conception  , est ce que cet mcd est realisé avec uml ? moi je  maitrise pas cette méthode , stp comment je vais appliquer les règles de  passage pour avoir le mld avec l'entité personne?pour moi c'est une nouvelle methode.merci encore une fois.
  • Partager sur Facebook
  • Partager sur Twitter
19 novembre 2017 à 18:25:56

Salut. Non, c'est bien du merise(pas de l'UML). Niveau MLD l'entité personne ne change pas, par contre au niveau des entités filles on aura une référence vers la mère(clé étrangère).

medecin(id_personne)

patient(id_personne)

...

J'ai bon Benzouye? :p

  • Partager sur Facebook
  • Partager sur Twitter
19 novembre 2017 à 19:19:05

merci bcp , désolé j'ai tjrs le même problème avec la généralisation : est ce que l'entité personne et les autre entités fille ont la même clé primaire?
  • Partager sur Facebook
  • Partager sur Twitter
19 novembre 2017 à 21:27:03

Oui, les entités filles héritent de la clé primaire(qui en même temps est une clé étrangère). Regarde

-
Edité par kulturman 19 novembre 2017 à 21:27:31

  • Partager sur Facebook
  • Partager sur Twitter
19 novembre 2017 à 21:50:11

grand merci kulturman, si je garde seulement l'entité patient et a chaque saisie en programmation je laisse des champs vides et j'ajoute une entité typepatient , est ce que c'est une bonne solution , un autre pbm concerne les dates de rappels pour les vaccins ou je vais les mettre sachant qu'il ya des vaccins qui n'ont pas de rappels?
  • Partager sur Facebook
  • Partager sur Twitter
20 novembre 2017 à 9:41:25

SamiaAniss a écrit:

si je garde seulement l'entité patient et a chaque saisie en programmation je laisse des champs vides et j'ajoute une entité typepatient

Cela va donner une table patient plus large, et potentiellement presque vide ... En terme de normalisation ce n'est pas propre ...

Si tu ne veux pas entendre parler d'héritage, alors tu peux créer trois tables distinctes : patient, médecin et infirmière. Mais là, c'est encore la normalisation qui ne sera pas optimisée, car par exemple l'attribut "nom" qui concerne les trois entités sera présent dans trois tables ... donc triple volume ...

SamiaAniss a écrit:

les dates de rappels pour les vaccins ou je vais les mettre sachant qu'il ya des vaccins qui n'ont pas de rappels?

Il faut donc modéliser cela ... Je verrais bien une entité "prise" avec une relation 1,n au vaccin et un attribut "mois" ou "age".

Une vaccin a au moins une prise (la première, avec mois = 0) et peut avoir plusieurs prises (appelées rappels, avec des mois différents).

Dans tous les cas, une prise reste dépendant d'une ordonnance. Donc pour chaque prise il faudra une ordonnance.

Le modèle serait :

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
20 novembre 2017 à 20:08:39

Salut Mr Benzouye, merci  bcp pour ta patience et pour toutes ces réponses , le pbm pour la table patient c’est que j'ai plusieurs types de vaccinés (nouveau neés, malades  en générales, anti rabique(rage) et autres, chaque type a des vaccins différentes avec des rappels différents, alors comment je vais traduire tout ça dans le mcd ?

  • Partager sur Facebook
  • Partager sur Twitter
21 novembre 2017 à 9:28:00

SamiaAniss a écrit:

j'ai plusieurs types de vaccinés

Donc une entité type_patient ...

SamiaAniss a écrit:

chaque type a des vaccins différentes avec des rappels différents

Donc une relation n,n entre type et vaccin ...

Après on peut supposer qu'un patient peut être de plusieurs type ... donc aussi une relation n,n entre type et patient.

Ce ne sont que des suppositions ... toi seul connaît les besoins ... et si tu les distilles au fur et à mesure ...

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
21 novembre 2017 à 13:23:22

Salut Mr Benzouye, merci encore milliard de fois pour toutes ces aides , tu m'as aidé plus que j'ai attendu , je vais essayer avec cet essai et j’espère que vous restez en contact avec moi car j'ai besoin de tes conseils , j'ai une autre remarque sur l'ajout d'une entité date puisque j'ai des dates vaccination et des rappels  (calendrier)  comment vous pouvez l'utiliser ? est ce que c'est nécessaire dans ce cas d'avoir une entité date?
  • Partager sur Facebook
  • Partager sur Twitter
21 novembre 2017 à 13:42:10

Une ordonnance donne lieu à la réalisation de la vaccination : c'est la relation n,n "realise" entre infirmière et ordonnance. Dans cette relation il y a un attribut date_vaccin pour mémoriser quand la vaccination a réellement eu lieu. Pour déterminer la date de rappel, il suffit de regarder la prise suivante du vaccin en question ... Pas d'autre date à stocker ...
  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
21 novembre 2017 à 14:32:12

Thanks Mr Benzouye, pour la relation réaliser entre infirmière et ordonnance pourquoi la cardinalité (o,n) du coté ordonnance car une seule infirmerie qui réalise l'injection donc on a  (1 ,1), une autre remarque stp concernant l'ordonnance; pas tous les vaccinés peuvent avoir une ordonnance par exemple les nouveau nés arrivent avec un carnet de vaccination.
  • Partager sur Facebook
  • Partager sur Twitter
21 novembre 2017 à 15:54:55

SamiaAniss a écrit:

une seule infirmerie qui réalise l'injection donc on a  (1 ,1)

Oui, je n'avais pas vu les choses ainsi. Du coup il faut déplacer la date_vaccin dans l'entité ordonnance. Elle sera NULL à la création de l'ordonnance, et sera renseignée lors de la vaccination.

SamiaAniss a écrit:

pas tous les vaccinés peuvent avoir une ordonnance par exemple les nouveau nés arrivent avec un carnet de vaccination.

Cela revient à faire une ordonnance quand même ... Le médecin va identifier le vaccin nécessaire, il suffira de créer une ordonnance pour ce vaccin et de dérouler le reste normalement ...
  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
21 novembre 2017 à 16:32:08

Je suis d'accord avec pour pour chaque vaccination il faut une ordonnance (il faut l'ajouter), j'ai une idée pour les vaccinations c'est d'ajouter une entité vaccination (num_v,date_v,date_rappel) mais avec quelles entités je dois la reliée, que dites vous ? Désolé Mr Benzoye je  pose bcp de questions
  • Partager sur Facebook
  • Partager sur Twitter
21 novembre 2017 à 18:08:42

SamiaAniss a écrit:

j'ai une idée pour les vaccinations c'est d'ajouter une entité vaccination (num_v,date_v,date_rappel) 

Non, l'ordonnance suffit pour stocker tout cela ...

Le modèle est actuellement celui-ci :

A partir d'une ordonnance tu connais la date de réalisation de la vaccination. Tu peux également retrouver la prise associée la date de rappel = date_realisation + mois ...

Renomme "mois" en "nombre_mois_rappel" si tu préfères ;)

Mais c'est l'ordonnance qui doit rester le centre de tout ...

-
Edité par Benzouye 21 novembre 2017 à 18:09:35

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
21 novembre 2017 à 18:22:20

Merci bcp Mr Benzouye, tu m'as aider énormément , tu es  généreux, dieu vous protège, j'aimerais bien que tu me donne toujours des conseils a chaque fois que j'ai besoin à ton aide.est ce que tu me permet de poser d'autres questions prochainement ?

  • Partager sur Facebook
  • Partager sur Twitter
21 novembre 2017 à 18:49:38

Je ne suis pas le seul sur ce forum, mais si je peux répondre à  tes questions prochaines je le ferai ...
  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
21 novembre 2017 à 18:58:23

j'aimerais bien que tu me donnes tjrs des conseils  si tu peux, tu es méthodique et vous simplifiez les choses le maximum.
  • Partager sur Facebook
  • Partager sur Twitter
24 novembre 2017 à 15:13:52

selon  l'association 1,1--- concerne---- 0,n  entre prise et vaccin un vaccin peut ne pas avoir aucune prise et une prise concerne un et un seul vaccin (mais une prise (exp dtc et vpo ont les même prises donc la relation du coté prise sera 1,n ) désolé si j'ai pas bien compris
  • Partager sur Facebook
  • Partager sur Twitter
24 novembre 2017 à 15:56:24

SamiaAniss a écrit:

pour les vaccins il ya un calendrier des vaccins, j'ai pas pu l’intégrer dans le mcd

Le planning en question, c'est le rôle des tables vaccin et prise ...

  • Pour le BCG, tu as un enregistrement dans la table vaccin, et un enregistrement dans la table prise avec mois = 0
  • Pour le VPO, tu as un enregistrement dans la table vaccin, et 6 enregistrements dans la table prise avec mois = 0, 2, 4, 12, 72 et 144
  • etc.

Une prise est bien associée à un seul vaccin ...

SamiaAniss a écrit:

mais une prise (exp dtc et vpo) ont les même prises donc la relation du coté prise sera 1,n

Non, il ne faut pas confondre une prise (entité) et son mois (attribut). Plusieurs prises peuvent avoir le même mois (ou age) de renseigné ...

-
Edité par Benzouye 24 novembre 2017 à 15:56:50

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
24 novembre 2017 à 16:20:35

vraiment je me suis trompé à ce point par exp :

  • l'entité(prise) à les enregistrements :

( 1...prise1 .....0mois)

(2...prise2 .....2mois)

(3...prise3 .....4mois)

  • l'entité(vaccin) à les enregistrements :

( bcg...vaccin de aaaaaa)

( vpo...vaccin de bbbbbb)

avec le mld est ce qu' on peut avoir:

prise(1...prise1...0 mois , bcg)

prise(2...prise2...0 mois , vpo)

si je refaire la saisie avec:

prise(3...prise3...0 mois , bcg) il va l'accepter c'est une redondance alors quelle es la clé?

  • Partager sur Facebook
  • Partager sur Twitter
24 novembre 2017 à 16:52:41

Avec ce MCD tu vas générer le MLD suivant :

  • vaccin ( id_vaccin [pk], libelle )
  • prise ( id_prise [pk], id_vaccin [fk], mois )

Prenons l'exemple du BCG et du VPO, la table vaccin contiendra :

id_vaccinlibelle
1 BCG
2 VPO

 Ensuite la table prise :

id_priseid_vaccinlibellemois
1 1 Injection unique BCG 0
2 2 Injection initiale VPO 0
3 2 1er rappel VPO 2
4 2 2ème rappel VPO 4
5 2 3ème rappel VPO 12
6 2 4ème rappel VPO 72
7 2 5ème rappel VPO 144

Tout est prêt pour ces deux vaccins, rien d'autre à créer.

Lorsqu'un médecin créera une ordonnance, il choisira un vaccin et une prise selon son besoin, et c'est l'id_prise qui figurera sur l'ordonnance.

-
Edité par Benzouye 24 novembre 2017 à 16:53:39

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
24 novembre 2017 à 17:21:42

Merci bcp pour ta patience , donc pendant la saisie je teste sur id-prise,id-vaccin comme clé pour ne pas doubler ou sur id-prise seulement? est ce que je peux ajouter la propriété date rappel dans l'entité ordonnance ?
  • Partager sur Facebook
  • Partager sur Twitter
25 novembre 2017 à 12:36:20

Pour choisir une prise, il faut d'abord déterminer le vaccin.

Donc côté applicatif, lorsque tu dois créer une ordonnance, il faut d'abord proposer la liste des vaccins. De là, tu peux alors proposer la liste des prises possibles. Un fois la prise choisie, tu peux créer l'ordonnance.

SamiaAniss a écrit:

est ce que je peux ajouter la propriété date rappel dans l'entité ordonnance ?

Je n'en voit pas l'intérêt ... Si tu relis plus haut :

Benzouye a écrit:

A partir d'une ordonnance tu connais la date de réalisation de la vaccination. Tu peux également retrouver la prise associée la date de rappel = date_realisation + mois ...

Sur une ordonnance tu connais la prise associée donc tu peux déterminer la prochaine prise ... c'est un calcul que tu peux faire à chaque fois que tu en as besoin, pas besoin de le stocker.
  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
26 novembre 2017 à 0:26:19

Salut, Je te remercie bcp bcp Mr Benzouye , si j'ai d'autre sujets à poser , est ce que je dois les envoyer au forum  ou les envoyer à toi directement ,je sais que je pose bcp de questions.
  • Partager sur Facebook
  • Partager sur Twitter