Anonymus
jeudi 26 février 2004 à 19:46
Ton script pose un certain nombre de problemes. Outre le fait que tu mentionnes 2 fois "nom_galerie" dans la table "galerie", tu mets id_tableau dans cette table. Or cela signifie qu'une galerie ne peut avoir qu'un seul tableau :
A la galerie n°55, le tableau n°32.
C'est incohérent.
Pourtant, tu mets bien id_galerie dans la table tableau : Un tableau est dans une et une seule galerie. Normal.
Sinon :
Pour site_membre, je te suggere d'augmenter le char(100). Il n'est pas rare d'avoir des url très longues (notamment pour les sites persos). et de mettre en varchar => varchar(255). Interet de varchar : Il prend la taille qu'il a besoin.
Pour code postal : On a rarement un code postal de 10 chiffres. Mets à 5, ca devrait suffire. Pour les noms de ville (table galerie, par exemple), augmentes aussi le nombre : beaucoup de villes ont un nom de plus de 10 lettres (exemple : Clermont-Ferrand)
Jettes un oeil aussi à la taille des mail_quelquechose. Avec char(10), tu ne permets 'que' 10 lettres pour une adresse email. Les adresses en webmaster-hub ont besoin d'au moins 19 lettres, c'est pour dire !
J'ai donc corrigé le id_categorie de la table categorie, en id_cat, (sinon il faut changer le nom des index partout),
j'ai enlevé le nom_galerie de galerie en trop,
j'ai enlevé le id_tableau dans la table galerie,
j'ai modifié le id_categorie dans la table tableau,
j'ai enlevé les commentaires,
à toi d'augmenter la taille allouée à chaque champs, comme mentionné plus haut.
Voilà. Sinon, la version corrigée de ton script SQL :
CITATION
CREATE TABLE categorie (
id_cat int(10) unsigned NOT NULL auto_increment,
nom_categorie varchar(100) NOT NULL DEFAULT '' ,
PRIMARY KEY (id_cat),
UNIQUE id_categorie (id_cat),
INDEX id_categorie_2 (id_cat)
);
CREATE TABLE location_vente (
id_loc_vente int(10) unsigned NOT NULL auto_increment,
type_transaction varchar(10) NOT NULL DEFAULT '' ,
date_debut varchar(10) NOT NULL DEFAULT '' ,
date_retour varchar(10) NOT NULL DEFAULT '' ,
montant int(10) NOT NULL DEFAULT '0' ,
id_membre int(10) NOT NULL DEFAULT '0' ,
PRIMARY KEY (id_loc_vente),
UNIQUE id_loc_vente (id_loc_vente),
INDEX id_loc_vente_2 (id_loc_vente)
);
CREATE TABLE membre (
id_membre int(10) unsigned NOT NULL auto_increment,
statut tinyint(10) NOT NULL DEFAULT '0' ,
pseudo char(10) NOT NULL DEFAULT '' ,
nom_membre char(10) NOT NULL DEFAULT '' ,
prenom_membre char(10) NOT NULL DEFAULT '' ,
societe_membre char(10) NOT NULL DEFAULT '' ,
adresse_memre char(10) NOT NULL DEFAULT '' ,
cp_membre char(10) NOT NULL DEFAULT '' ,
ville_membre char(10) NOT NULL DEFAULT '' ,
tel_membre char(10) NOT NULL DEFAULT '' ,
mail_membre char(10) NOT NULL DEFAULT '' ,
mdp_membre char(10) NOT NULL DEFAULT '' ,
site_membre char(100) NOT NULL DEFAULT '' ,
PRIMARY KEY (id_membre),
UNIQUE id_membre (id_membre),
INDEX id_membre_2 (id_membre)
);
CREATE TABLE tableau (
id_tableau int(10) unsigned NOT NULL auto_increment,
nom_tableau varchar(100) NOT NULL DEFAULT '' ,
taille_tableau varchar(10) NOT NULL DEFAULT '' ,
technique_tableau varchar(10) NOT NULL DEFAULT '' ,
prix_loc_tableau int(10) NOT NULL DEFAULT '0' ,
prix_vente_tableau int(10) NOT NULL DEFAULT '0' ,
presence tinyint(10) NOT NULL DEFAULT '0' ,
id_categorie int(10) NOT NULL DEFAULT '0' ,
id_membre int(10) NOT NULL DEFAULT '0' ,
id_galerie int(10) NOT NULL DEFAULT '0' ,
PRIMARY KEY (id_tableau),
UNIQUE id_tableau (id_tableau),
INDEX id_tableau_2 (id_tableau)
);
CREATE TABLE galerie (
id_galerie int(10) unsigned NOT NULL auto_increment,
nom_galerie varchar(100) NOT NULL DEFAULT '' ,
adresse_galerie char(100) NOT NULL DEFAULT '' ,
cp_galerie char(10) NOT NULL DEFAULT '' ,
ville_galerie char(10) NOT NULL DEFAULT '' ,
tel_galerie char(10) NOT NULL DEFAULT '' ,
mail_m char(10) NOT NULL DEFAULT '' ,
site_galerie char (100) NOT NULL DEFAULT '' ,
id_membre int(10) NOT NULL DEFAULT '0' ,
id_tableau int(10) NOT NULL DEFAULT '0' ,
PRIMARY KEY (id_galerie),
UNIQUE id_galerie (id_galerie),
INDEX id_galerie_2 (id_galerie)
);