Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: aspkiddy le le 07-06-2011 a 18:51:12

Titre: [résolu] base de données relationnelle ou modèle de données relationnel
Posté par: aspkiddy le le 07-06-2011 a 18:51:12

Bonjour,

Je cherche des informations pratiques sur base de données relationnelle :
Les avantages et les inconvénients d'avoir une base de données relationnelle?
Est-ce que peut-on avoir une base de données relationnelle avec MySql? Est-ce qu’on peut la monter sous PhpMySql?
Comment peut-on la monter?

Est-ce que vous avez des liens sur cela pour un débutant avec des exemples ?

Je sais que je peux aussi chercher sur Google mais je n'ai pas trouvé un document complet, clair pour un débutant...

Merci votre compréhension à ma question générale... ???

Titre: Re:base de données relationnelle ou modèle de données relationnel
Posté par: aspkiddy le le 09-06-2011 a 16:07:09

pourquoi je vous pose cette question ?

Parce que je vais l'apprendre et voici un projet fictif :
J'ai un bd qui a 4 tables
table tb_marques contient 2 champs : id et chmps_marques
table tb_moteur contient 2 champs : id et chmps_moteur
table tb_annee contient 2 champs : id et chmps_annee
table tb_note contient 3 champs : id, chmps_id_note et chmps_notes


L’utilisateur affiche un formulaire avec 3 menus déroulants, "marques", "moteurs" et "année" dont les informations viennent de 3 différentes table et un champ de texte pour les notes.

Il sélectionne trois menus et il écrit ses notes dans le champ et valide le formulaire.

Je me demande si j'ai besoin d'un modèle de données relationnelles. Comment je fais la relation entre ces tables ? En fait, j'ai besoin de faire une relation entre les tables pour que j'affiche les résultats qui contient :
les notes, sur la marque, sur son moteur et sur l'année...

Titre: Re:base de données relationnelle ou modèle de données relationnel
Posté par: Pad le le 09-06-2011 a 22:48:41

Pour faire les relations entre les tables, tu peux créer une autre table. Tout dépend des correspondances que tu veux établir.

Exemple :

Code:
table tb_marques contient 2 champs : id et chmps_marque
table tb_moteur contient 2 champs : id et chmps_moteur
table tb_annee contient 2 champs : id et chmps_annee
table tb_note contient 3 champs : id, chmps_id_note et chmps_notes
Nouvelle table tb_link contient 4 champs : id_marques, id_moteur, id_annee, id_note

Titre: Re:base de données relationnelle ou modèle de données relationnel
Posté par: aspkiddy le le 10-06-2011 a 03:55:28

Merci pour les explications Pad...

Mais je ne sais pas comment je peux faire la relation sous PhpMyAdmin avec MySql...

Voici ma tentative avec une autre exemple simple :
j'ai créé ma première table, nom, qui contient 2 colonnes : id_nom etprenom

ma requête SQL

Code:
CREATE TABLE nom (id_nom INTEGER PRIMARY KEY,
prenom TEXT NOT NULL

);

ensuite 2e table,
ecole, avec 3 colonnes : id_ecole (clé première), nom_prof et nom_etud. Ce derniere est une clé étrangere (foreign key) qui vient du colonne 'id_nom' de table nom

voici mon code
Code:
CREATE TABLE ecole (id_ecole INTEGER PRIMARY KEY,
nom_prof TEXT NOT NULL,
nom_etud INTEGER NOT NULL REFERENCES nom(id_nom)

)


PHPmyAdmin crée les tables sans erreur, mais on ne voit pas du tout le concept de foreign key même si dans ma requête, il y avait "REFERENCES nom(id_nom)"

Alors comment je peux créer une table avec foreign key dans PhpMyAdmin ?

Titre: Re:base de données relationnelle ou modèle de données relationnel
Posté par: Pad le le 10-06-2011 a 05:13:06

je crois que tu dois créer des tables de type myisam non ? Je crois qu'il n'y a que le format InnoDB qui permet de gérer les foreign keys. Essaye avec ça :


Code:

CREATE TABLE ecole (
id_ecole INTEGER PRIMARY KEY,
nom_prof TEXT NOT NULL,
nom_etud INTEGER NOT NULL REFERENCES nom(id_nom)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;



Titre: Re:base de données relationnelle ou modèle de données relationnel
Posté par: aspkiddy le le 13-06-2011 a 15:29:35

Merci Pad,

Comme tu dis, il faut un format InnoDB et mettre les FK (Foreign Key) en Index

C'est Résolu...


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.