Conception d'une base de données

folette
Conception d'une base de données

Bonjour,

A partir du tableau excel que j'ai joint, je dois créer une base de données. Le problème c'est que je ne sais pas quelles tables créer afin de pouvoir créer une requête qui permet de retrouver rapidement la situation de vaccination d'un cheval, dont on saisi le nom. Quel pourrait être le contenu de ces tables?

Vous pouvez consulter le tableau excel à cette adresse dont le message est aussi de moi.
LIEN

Je vous remercie pour toute l'aide que vous pourrez m'apporter.

PS: Maintenant je possède MS access 2003 et non pas open office base comme on peut le voir avec le lien.

Niroken

Bonjour,

Pour le contenu de ton fichier je répondrais de la manière suivante :
Il faut créer 4 tables dont un schéma rapide est réprésenté ci dessous:

CHEVAL :
 - cheval_matricule         : TYPE VARCHAR Primary Key
 - cheval_nom               : TYPE VARCHAR
 - cheval_race              : TYPE VARCHAR
 - cheval_couleur           : TYPE VARCHAR
 - cheval_date_de_naissance : TYPE DATETIME
 
VACCIN :
 - vaccin_id                : TYPE INT Primary Key autoIncrement
 - vaccin_nom               : TYPE VARCHAR
 - vaccin_maladie_traitee   : TYPE VARCHAR
 
VETERINAIRE :
 - veterinaire_id           : TYPE INT Primary Key autoIncrement
 - veterinaire_nom          : TYPE VARCHAR
 
VACCINATION :
 - vaccin_id                : TYPE INT FOREIGN KEY (vaccin_id)
 - cheval_matricule         : TYPE VARCHAR FOREIGN KEY (matricule_cheval)
 - vaccination_date         : TYPE DATETIME
 - veterinaire_id           : TYPE INT FOREIGN KEY (veterinaire_id)

La requete que tu voulais qui permet d'etablir l'etat de vaccination d'un cheval en fonction de son nom devient :

SELECT 
	chev.cheval_nom,
	vcin.vaccin_nom,
	vcin.vaccin_maladie_traitee ,
	vtion.vaccination_date
FROM
	CHEVAL chev,
	VACCINATION vtion,
	VACCIN vcin
WHERE
       chev.cheval_nom = #UnNomDeCheval#
AND chev.cheval_matricule = vaccination.cheval_matricule
AND vtion.vaccin_id = vcin.vaccin_id 

J espère que ca peut t'éclairer.

Bonne chance,
Niroken

folette

Merci beaucoup pour ta réponse, mais j'ai encore un question: à quoi correspondent vaccin_id et vétérinaire_id?

Niroken

Bonjour,

En fait un id en base de données représente généralement un identifiant unique.
Pour en revenir a l exemple, il est possible que deux vétérinaires aient le même nom par conséquent pour les différencier il faut leur adjoindre un identifiant unique.
Cela est bcp moins probable mais potentiellement possible pour les vaccins donc on ajoute aussi un id.

Si tu leur mets la propriété autoIncrement quand tu crée ces champs dans la base, alors il n'est pas besoin de valoriser la valeur de cette id, le moteur de base de données le fait tout seul, ainsi pour ajouter un vétérinaire dans la table correspondante il faudra faire :

INSERT INTO veterinaire
	(veterinaire_nom) 
VALUES 
	('Mr Soignetout')    

L id sera incrémenté tout seul dans ta table.

Bonne chance,
Niroken

Niroken

Bonjour,

Le soucis de folette a été corrigé, pour ceux que ca intéresserait
d'avoir un exemple de base access avec qq tables, un formulaire,
deux requetes et un etat voici le lien sur la base correspondante.
http://dedikam2.com//index.php?co=co&pp=pp&dl=dl&clef=5463202e1aed1ae5d5d63f2811d8e974

Bonne chance,
Niroken

folette

Merci beaucoup pour votre aide Niroken.