Page 1 sur 1

diffdérence entre 2 tables

Posté : 05 mai 2008, 19:16
par Invité
Bonjour à tous, j'ai récupéré sur internet une table que voici:

Code : Tout sélectionner

CREATE TABLE `jos_joe_dailymessage_conf` ( `bold` tinyint(1) NOT NULL default '0', `italic` tinyint(1) NOT NULL default '0', `underline` tinyint(1) NOT NULL default '0', `showdate` tinyint(1) NOT NULL default '0', `configid` tinyint(4) NOT NULL default '0' ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Elle n'a aucun pb. J'ai moi même créé une autre table que voici:

Code : Tout sélectionner

CREATE TABLE `jos_monoslideshow_conf` ( `configid` int(11) NOT NULL default '0', `swfpath` varchar(255) NOT NULL default '', `swfwidth` tinyint(4) NOT NULL default '0', `swfheight` tinyint(4) NOT NULL default '0', `swfbgcolor` varchar(7) NOT NULL default '', `flashversion` varchar(255) NOT NULL default '', `showlogo` tinyint(1) NOT NULL default '0', `showversioninfo` tinyint(1) NOT NULL default '0', KEY `configid` (`configid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Elle n'a aucun pb non plus. Ces 2 tables n'ont pas de clé primaire et pas d'index.
phpmyadmin semble faire une différence que je ne comprends pas entre les 2 tables.
Quand j'affiche les données de ma table 'jos_monoslideshow_conf', j'ai un petit "?" qui me dit "vous devriez créer une clé primaire pour cette table".

Ce point d'interrogation n'apparait pas pour la table 'jos_joe_dailymessage_conf'. Voyez vous pourquoi?
Merci pour vos réponses.

Posté : 05 mai 2008, 19:18
par Invité
veuillez ignorer le "KEY `configid` (`configid`)" dans la 2ème table, c'est une erreur de post.
Je confirme que ma deuxième table ne contient pas d'index ou de clé primaire.

Posté : 05 mai 2008, 21:16
par Cyrano
C'est une recommandation, mais pas une obligation. Donc tu peux ignorer cet avertissement. Ceci dit, il serait peut-être intéressant de nous expliquer l'utilisation qui est faite de ces tables, une optimisation pourrait éventuellement permettre de simplifier et du coup également de faire sauter les avertissements en faisant une refonte plus conforme.

Posté : 06 mai 2008, 09:53
par Invité
je me demandais pourquoi pour 2 tables de même type (pas de clé primaire ou d'index), je reçois la recommandation seulement pour l'une d'entre elles.

Ceci n'est pas un pb, plutôt une question de "culutre générale".

je n'ai vraiment pas plus d'info sur ces tables. à part la structure, je ne vois pas ce qui pourrait apporter de l'information utile pour comprendre ce qui se passe car je ne fais que des select sur les tables et tout marche parfaitement...

Posté : 06 mai 2008, 10:23
par Berzemus
Pour ta culutre générale, il me semble voir que ta première table ne contient que des chiffres (integers), alors que la seconde des varchar. Sans doute que dans un tableau avec que des chiffres, il est inutile de commencer à les indexer, puisque ça n'apporterait rien. Enfin, c'est comme ça que je le vois, mais j'ai pas fait de recherches pour appuyer mes dires.. c'est une intuition :wink:

Posté : 06 mai 2008, 11:08
par Sékiltoyai
C'est une erreur de leur part. Si tu récupères les enregistrements grace au configid, il faut que tu l'indexes voire le primarise selon l'utilisation dans les 2 cas…

Posté : 06 mai 2008, 11:43
par Invité
en fait la table est prévue pour recevoir un seul enregistrement, jamais plus.
merci pour vos indications très utiles.

Posté : 06 mai 2008, 12:27
par Sékiltoyai
C'est à dire ?
Tu as un seul enregistrement pour toute ta table ?