Jointure de tables avec Dreamweaver MX
Écrit par Thibault Imbert | 27-07-2005
Index de l'article
Jointure de tables avec Dreamweaver MX
Page 2
Page 3

Proposé par Nadine 

Dans les bases de données un peu complexe, il est souvent nécessaire de faire des jointures de table quand on se retrouve avec une relation de 1 à n. Ce système permet de relier plusieurs tables par leurs id afin d'éviter d'alourdir inutilement la base de données.

Nous allons voir comment Dreamweaver permet de créer une jointure de tables très facilement, pratiquement sans taper de code.

Principe des jointures de tables

Prenons le cas d'un catalogue de livres où l'on veut rentrer les renseignements suivants : titre du livre, nom et prénom de l'auteur, collection à laquelle appartient le livre

Le premier réflexe quand on ne connait pas les bases de données serait de créer une seule table contenant toutes ces informations :

id_livre titre_livre nom_auteur prenom_auteur collection
1 Les fourmis Werber Bernard Le livre de poche
2 Mercure Nothomb Amélie Le livre de poche
3 Robert des noms propres Nothomb Amélie Albin Michel
4 Sans feu ni lieu Vargas Fred J'ai lu
5 Debout les morts Vargas Fred J'ai lu
6 Le jour des fourmis Werber Bernard Albin Michel

CE N'EST PAS LA BONNE SOLUTION !

En effet, on voit que les informations concernant les auteurs et la collection sont dupliquées et alourdissent inutilement la base. Pour 5 livres du même auteur, on rentre 5 fois les informations concernant son nom et son prénom, avec tous les risques de faute de frappe que cela représente...

Avec la méthode Merise, on crée 3 tables :

  • une table pour les collections,
  • une table pour les auteurs,
  • une table livres dans laquelle on ajoute seulement l'identifiant correspondant à l'auteur et celui correspondant à la collection.

TABLE AUTEURS

id_auteur nom_auteur prenom_auteur
1 Werber Bernard
2 Nothomb Amélie
3 Vargas Fred

TABLE COLLECTIONS

id_collection collection
1 Le livre de poche
2 Albin Michel
3 J'ai lu

TABLE LIVRES

id_livre titre_livre id_auteur id_collection
1 Les fourmis 1 1
2 Mercure 2 1
3 Robert des noms propres 2 2
4 Sans feu ni lieu 3 3
5 Debout les morts 3 3
6 Le jour des fourmis 1 2

Création des tables

On crée une base "bouquins" et on crée la structure de ces 3 tables avec phpMyAdmin.

#
# Structure de la table `auteurs`
#

CREATE TABLE auteurs (
id_auteur int(11) NOT NULL auto_increment,
nom_auteur varchar(255) NOT NULL default '',
prenom_auteur varchar(255) NOT NULL default '',
PRIMARY KEY (id_auteur)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# Structure de la table `collections`
#

CREATE TABLE collections (
  id_collection int(11) NOT NULL auto_increment,
  collection varchar(255) NOT NULL default '',
  PRIMARY KEY (id_collection)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# Structure de la table `livres`
#

CREATE TABLE livres (
  id_livre int(11) NOT NULL auto_increment,
  titre_livre varchar(255) NOT NULL default '',
  id_auteur int(11) NOT NULL default '0',
  id_collection int(11) NOT NULL default '0',
  PRIMARY KEY (id_livre)
) TYPE=MyISAM;

On insère les noms et prénoms de nos trois auteurs et les noms des collections dans leurs tables respectives (On verra ensuite comment utiliser un formulaire d'insertion pour insérer d'autres enregistrements).

Par contre, on laisse la table livres totalement vide. On remplira cette table directement avec un formulaire d'insertion.


 
Dernière mise à jour : 04-11-2006