thierry8 a dit:Bonjour,
j'ai une table de jointure, qui est donc composé de deux clés étrangères.
Elle ne contient donc aucun index, et je souhaiterai savoir si dans mysql il est possible de lui indiquer qu'il s'agit d'une table de jointure ?
Merci
ALTER TABLE `table_jointure` ADD INDEX `FK_table1` ( `IDTable1` );
ALTER TABLE `table_jointure` ADD INDEX `FK_table2` ( `IDTable2` );
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}]
[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}]
chantra a dit:tu as qu'à indexer le couple d'ids comme unique.
.
thierry8 a dit:humm...comment faire avec phpmyadmin ?
ALTER TABLE `table_jointure` ADD INDEX `FK_table1` ( `IDTable1` );
ALTER TABLE `table_jointure` ADD INDEX `FK_table2` ( `IDTable2` );
ALTER TABLE `table_jointure` ADD UNIQUE `PK_ID1_ID2` ( `IDTable1` , `IDTable2` );
non, c'est chantra qui a raison. c'est l'inverse.thierry8 a dit:euh...si je ne me trompe pas c'est l'inverse, le fait d'être indexé, la clé est unique...
thierry8 a dit:En revanche dans mon cas, même les deux id ne peuvent être unique!
Je peux très bien avoir deux fois cela:
id1 = 1
id2 = 1
thierry8 a dit:TABLE 2: elements_ds_pages
id_page
id_elmt
typ_elmt
Bien entendue c'est vraiment grossièrement !
Il faut considérer que les tables ne peuvent qu'être ainsi !
Il y a encore pas mal de champs qui me permettent de dire cela !
(je suis certain de ma structure, cependant je l'ai mis pour que vous puissiez constaté que la TABLE 2 peut effectivement avoir id_page=1+id_elmt=1 ET id_page=1+id_elmt=1 du fait que le troisième champ "typ_elmt" permet de définir de quel element il s'agit)
thierry8 a dit:et pourquoi ne pas le mettre en index ?
la différence je comprends pas entre les deux ?
e-kiwi a dit:Thierry8 il aura bientot 5000 messages WRI, mais ca sera 5000 messages ou on l'aura aidé à faire son site uh uh![]()
Clé primaire: identifie de manière unique un enregistrement (INDEX + UNIQUE). La différence avec Unique c'est qu'il peut englober plusieurs champs et donc la clé est relative à l'ensemble de ces champs.
Unique: permet de rendre spécifiquement un champ unique, pour éviter les doublons. Par la même occasion un champ unique sera indexé.
Index: permet d'indexer un champ pour améliorer la vitesse des recherches sur ce même champ. En revanche la vitesse d'insertion ou de modification sera diminuée.
spidetra a dit:Tu n'est pas obligé d'avoir une clé primaire, ou un index unique sur une table.
shrom a dit:C'est la clé primaire qui identifie de manière unique un enregistrement, s'il est impossible de déterminer une clé primaire, il y a une grosse erreur de conception.
C'est une des bases de la théorie des base de données relationnelles ( première forme normale ) après qu'elle soit indiquée ou non au SGBD est une autre chose.
➡️ Offre MyRankingMetrics ⬅️
pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)
Voir les détails ici