Projet SQL

Projet SQL - SQL/NoSQL - Programmation

Marsh Posté le 10-05-2007 à 12:59:23    

je vous post l'enoncé de mon projet de BDD que j'ai a faire
toute aide sera precieuse et bien evidement la bienvenue
 

Citation :

Un laboratoire d'analyse bio-medicales souhaite créer une base de données pour gerer les commandes de ses clients. Chaque commande est prescrite par l'ordonnance du medecin traitant. Un client peut effectuer une ou plusieurs commandes d'analyses medicales a des periodes differentes. Plusieurs examens tels qu'une echographie, une radiographie ou une biopsie, peuvent faire l'objet d'une meme ordonance et donc d'une meme commande au labo d'analyses bio-medicales. Chaque comande est gerée par une secretaire du labo. Les examens sont regroupés en categories, telles qu'examens d'imagerie radiographique, examens biologiques ou histologiques. Par exemple, une radio de la hanche et une mammographie sont deux exemples d'imagerie radiographique. Les examens sont realisés soit par les services competents du labo, soit par les services fournisseurs d'examens de labo sous-traitants. Un examen est susceptible d'etre realisé par les services specialisés de plusiuers laboratoires. Seul l'un de ces fournisseurs d'examens est selectionné pour realiser l'examen d'un patient. Le catalogue des services fournisseurs d'examens precise le nom  et l'adresse du labo d'appartenance, ainsi que les informations telles que le numero de tel, le fax, l'adresse electronique. Le catalogue des examens realisables par les services fournisseursprecise le nom et l'adresse du service du labo fournisseur, aisi que le nom de l'examen réalisable, et des informations telles que le prix du fournisseur et le delai de livraison du resultat de l'examen. Chaque commande accompagnée d'une ordonance fait l'objet d'une facture, qui peut etre reglée par differentes methodes de paiement telles que virement bancaire ou cheque.


---------------

Reply

Marsh Posté le 10-05-2007 à 12:59:23   

Reply

Marsh Posté le 10-05-2007 à 13:00:04    

premierement il faut que je done un schema relationnel et de créer les talbes en utilisant mysql.


---------------

Reply

Marsh Posté le 10-05-2007 à 13:10:37    

On ne fait pas le boulot des étudiants, démerde-toi.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 10-05-2007 à 13:13:23    

je veux pas que vous me fassiez le boulot
 
mais je prepare le terrain au cas ou j'ai besoin d'aide pour une requete ou pour la creation d'une table
 
avec le sujet sous les yeux c'est plus facil a comprendre :o


---------------

Reply

Marsh Posté le 10-05-2007 à 13:14:36    

pour l'instant je pense créer les tables suivantes :
 
Laboratoire
Client
Medecin
Service
Commande
Ordonnance
Examen
Secretaire


---------------

Reply

Marsh Posté le 10-05-2007 à 13:14:38    

Si tu as besoin d'aide pour un problème précis tu demandes...mais je pense que tant que tu n'en as pas on a strictement rien à foutre de ton énoncé...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 10-05-2007 à 13:55:00    

Moi je veux bien te filer une réponse complète, mais à mon avis, c'est du 0 assuré :spamafote:
 
Et oui, je vais partir sur un concept de MERISE dénormalisé. En soit c'est réellement beaucoup mieux (plus évolutif, plus performant, plus facile à coder, plus souple, etc.) mais c'est aussi et surtout tout ce qu'il y a de moins conventionnel.
 
En tout cas, un indice : Par rapport à tes tables, j'ai besoin de 3 tables. Mais là, d'entrée de jeu, t'as 0 :D

Reply

Marsh Posté le 10-05-2007 à 14:00:48    

pour l'instant j'ai fait ca :
 
 

Citation :

create table laboratoire(nom_labo char(20), adresse_labo char(20), vill_labo char(20));
 
create table client(nom_client char(20), adresse_client char(20), ville_client char(20));
 
create table medecin(nom_medecin char(20), adresse_medecin char(20), ville_medecin char(20));
 
create table examen(type_examen char(20), nom_examen char(20), prix_examen int not null);
 
create table commande(numero_commande int, date_commande date);
 
alter table laboratoire add tel_labo int;
 
alter table laboratoire add fax_labo int;
 
alter table laboratoire add mail_labo char(30);
 
alter table laboratoire add pageweb_labo char(30);


 
 
mais je commence a "bloquer" au niveau de la redodance des colonnes et l utilisation des clefs etrangere etc...


---------------

Reply

Marsh Posté le 10-05-2007 à 14:20:51    

tu vas pas aller loin si tu bloques deja :lol:
On t'a pas appris en cours ce que c'etait que des cles primaires toussa, ou alors t'as seche bcp de cours ? :o


Message édité par joce le 10-05-2007 à 14:22:14

---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 10-05-2007 à 14:25:06    

non je sais ce que c'est

 

le probleme c'est de gerer les données, convertir le sujet du "francais" au sql

Message cité 1 fois
Message édité par lumi le 10-05-2007 à 14:26:03

---------------

Reply

Marsh Posté le 10-05-2007 à 14:25:06   

Reply

Marsh Posté le 10-05-2007 à 14:29:21    

Bah c'est un boulot personnel, ça. Si tu ne te forces pas à le faire tout seul et à comprendre la logique qui va derrière tu y arriveras jamais.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 10-05-2007 à 14:33:39    

lumi a écrit :

non je sais ce que c'est
 
le probleme c'est de gerer les données, convertir le sujet du "francais" au sql


Desole ca je sais pas faire :o


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 10-05-2007 à 14:59:02    

mise a jour :o
 
 

Citation :

create table laboratoire(nom_labo char(20), adresse_labo char(20), vill_labo char(20), pageweb_labo char(30), tel_labo int, fax_labo int, mail_labo char(30), primary key(nom_labo));
 
create table client(nom_client char(20), adresse_client char(20), ville_client char(20), primary key(nom_client));
 
create table medecin(nom_medecin char(20), adresse_medecin char(20), ville_medecin char(20), primary key(nom_medecin));
 
create table examen(type_examen char(20), nom_examen char(20), prix_examen int not null, primary key(type_examen, nom_examen));
 
create table commande(numero_commande int, date_commande date, primary key (numero_commande));


---------------

Reply

Marsh Posté le 10-05-2007 à 15:00:45    

Il se passe quoi quand tu as des clients homonymes (valable pour els autres tables) ? [:dawao]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 10-05-2007 à 15:04:17    

joce a écrit :

Desole ca je sais pas faire :o


j'aurais juré que pour toi, c'était le problème inverse [:cerveau boulay]

Reply

Marsh Posté le 10-05-2007 à 15:04:55    

skeye a écrit :

Il se passe quoi quand tu as des clients homonymes (valable pour els autres tables) ? [:dawao]


 
je peux rajouter une colonne prenom au pire
 
et le but n'est pas de compliquer trop la tache, de toute facon les données on les invente nous meme


---------------

Reply

Marsh Posté le 10-05-2007 à 15:06:03    

lumi a écrit :

je peux rajouter une colonne prenom au pire


...et si jamais tu as deux martin dupont?[:dawao]

 

[edit]

 

C'est la base de la base, hein...:o


Message édité par skeye le 10-05-2007 à 15:06:16

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 10-05-2007 à 15:11:21    

je peux rajouter un code_client pour eviter les doublons


Message édité par lumi le 10-05-2007 à 15:20:34

---------------

Reply

Marsh Posté le 10-05-2007 à 15:23:20    

code_labo int auto_increment


---------------

Reply

Marsh Posté le 10-05-2007 à 15:24:57    

dans ce cas là, Access devient un véritable outil de génie :
 
"votre table ne contient pas d'identifiant. voulez-vous qu'access en crée un pour vous ? [oui]/non"

Reply

Marsh Posté le 10-05-2007 à 15:24:59    

MagicBuzz a écrit :

j'aurais juré que pour toi, c'était le problème inverse [:cerveau boulay]


 :whistle:  


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 10-05-2007 à 15:25:26    

MagicBuzz a écrit :

dans ce cas là, Access devient un véritable outil de génie :
 
"votre table ne contient pas d'identifiant. voulez-vous qu'access en crée un pour vous ? [oui]/non"


 
 
sauf que j'ai appris que mysql


---------------

Reply

Marsh Posté le 10-05-2007 à 15:29:12    

/me dit qu'il voit pas le rapport : là t'es en train de modéliser ton truc, on se cogne du sgbd :spamafote:

Reply

Marsh Posté le 10-05-2007 à 15:34:03    

question : une clef etrangere d'une table est-elle obligatoirement une clef PRIMAIRE d'une autre table ?


---------------

Reply

Marsh Posté le 10-05-2007 à 15:59:22    

oui

Reply

Marsh Posté le 10-05-2007 à 16:02:59    

ok merci


---------------

Reply

Marsh Posté le 10-05-2007 à 16:03:09    

create table ordonnance( code_ordonnance int not null auto_increment, code_medecin int, code_client int, nom_examen char(20), type_examen char(20), primary key(code_ordonnance), foreign key(code_medecin) references medecin(code_medecin), foreign key(code_client) references client(code_client), foreign key(nom_examen) references examen(nom_examen), foreign key(type_examen) references examen(type_examen);

  

mais y'a une erreure :(


Message édité par lumi le 10-05-2007 à 16:08:10

---------------

Reply

Marsh Posté le 10-05-2007 à 16:39:57    

Faudrait peut-être faire le MCD complet avant d'essayer de créer les tables non ?
Il me semble que tu essayes de faire passer la charue avant les boeufs ;)
 
D'après MERISE, on commence par le MCD, on déduit un MLD qu'on optimise pour obtenir le MPD, après (et seulement après) on génère les scripts pour la BDD.

Reply

Marsh Posté le 10-05-2007 à 16:43:48    

à la limite, on peut passer au MPD directement, mais seulement quand on a l'habitude de modéliser (MCD -> MLD -> MPD sont des tâches totalement automatisables). mais c'est clair qu'il faut faire une analyse propre avant de commencer quoi que ce soit.
 
PS : avant le MCD, déjà, un dictionnaire des données et des règles de gestion ne serait pas un luxe. à partir de là, et seulement à partir de là, un MCD est réalisable -les yeux fermés-

Reply

Marsh Posté le 10-05-2007 à 16:45:07    

Entièrement d'accord sur le "quand on a l'habitude"  ;)

Reply

Marsh Posté le 10-05-2007 à 16:57:37    

xonop a écrit :

Faudrait peut-être faire le MCD complet avant d'essayer de créer les tables non ?
Il me semble que tu essayes de faire passer la charue avant les boeufs ;)


Oui, surtout que c'est dans le sujet :o
 

lumi a écrit :

premierement il faut que je done un schema relationnel et de créer les talbes en utilisant mysql.

Reply

Marsh Posté le 10-05-2007 à 17:02:22    

ben je fais les deux a la fois
 
la j'en suis la :
 
 

Citation :

create table laboratoire(code_labo int auto_increment, nom_labo varchar(20), adresse_labo varchar(20), vill_labo varchar(20), pageweb_labo varchar(30), tel_labo int, fax_labo int, mail_labo char(30), primary key(code_labo));
 
create table client(code_client int not null auto_increment, nom_client varchar(20), adresse_client varchar(20), ville_client varchar(20), primary key(code_client));
 
create table medecin(code_medecin int not null auto_increment, nom_medecin varchar(20), adresse_medecin varchar(20), ville_medecin varchar(20), primary key(code_medecin));
 
create table examen(code_examen int not null auto_increment, type_examen varchar(20), nom_examen varchar(20), prix_examen int not null, primary key(code_examen));
 
 
create table ordonnance(code_ordonnance int not null auto_increment, date_ordonnance date, code_medecin integer references medecin (code_medecin), code_client integer references client (code_client), code_examen integer references examen (code_examen), primary key(code_ordonnance));

Message cité 1 fois
Message édité par lumi le 10-05-2007 à 17:02:58

---------------

Reply

Marsh Posté le 10-05-2007 à 17:03:47    

lumi a écrit :

ben je fais les deux a la fois


on veut une preuve :o
Fais péter le MCD NOW :fou:

Reply

Marsh Posté le 10-05-2007 à 17:05:15    

:D


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le 10-05-2007 à 17:05:35    

parcontre vos abreviations je connais pas :o


---------------

Reply

Marsh Posté le 10-05-2007 à 17:06:13    

tu connais pas MCD, MLD, MPD, DTC ?

Reply

Marsh Posté le 10-05-2007 à 17:10:58    

le dernier si :heink:


---------------

Reply

Marsh Posté le 10-05-2007 à 17:15:15    

c'était pour voir si tu suivais [:cosmoschtroumpf]

Reply

Marsh Posté le 10-05-2007 à 17:16:02    

cela dit si tu connais pas les autres, t'as pas dû avoir de cours de Merise :D

Reply

Marsh Posté le 10-05-2007 à 17:16:38    

Je trouve ça excellent qu'on vous fasse faire du SQL mais que vous n'évoquiez même pas les concepts préalables :heink:


---------------
Music|Market|Feed|Loom|DVD
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed