Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1196 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [mysql] une clé primaire est elle par défaut un index ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[mysql] une clé primaire est elle par défaut un index ?

n°1135963
matthieu_p​hpmv
Posté le 30-06-2005 à 14:47:32  profilanswer
 

bonjour,
 
je fais mes schémas de tables avec le très bon logiciel libre DBDesigner.
 
Je me pose une question, j'ai une table qui fait le lien entre 3 tables diverses.
La clé primaire de cette table de liaison est la concaténation des 3 autres.
Je définie aussi un index sur chacun des 3 champs.
Mes questions :
- faut il définir un index sur chacun des 3 champs (donc 3 index) ? alors que ces 3 champs sont uen clé primaire ?
- faut il créer un index sur l'ensemble des 3 champs ? (donc 1 index)  alors que ces 3 champs sont uen clé primaire ?
 
donc faut il mieux faire
 

Code :
  1. CREATE TABLE users_link_permissions (
  2.   site_idsite INTEGER UNSIGNED NOT NULL,
  3.   permissions_idpermissions INTEGER UNSIGNED NOT NULL,
  4.   users_iduser INTEGER UNSIGNED NOT NULL,
  5.   PRIMARY KEY(site_idsite, permissions_idpermissions, users_iduser),
  6. );


 
ou

Code :
  1. CREATE TABLE users_link_permissions (
  2.   site_idsite INTEGER UNSIGNED NOT NULL,
  3.   permissions_idpermissions INTEGER UNSIGNED NOT NULL,
  4.   users_iduser INTEGER UNSIGNED NOT NULL,
  5.   PRIMARY KEY(site_idsite, permissions_idpermissions, users_iduser),
  6.   INDEX users_link_permissions_FKIndex1(users_iduser),
  7.   INDEX users_link_permissions_FKIndex2(permissions_idpermissions),
  8.   INDEX users_link_permissions_FKIndex3(site_idsite),
  9. );


 
ou

Code :
  1. CREATE TABLE users_link_permissions (
  2.   site_idsite INTEGER UNSIGNED NOT NULL,
  3.   permissions_idpermissions INTEGER UNSIGNED NOT NULL,
  4.   users_iduser INTEGER UNSIGNED NOT NULL,
  5.   PRIMARY KEY(site_idsite, permissions_idpermissions, users_iduser),
  6.   INDEX users_link_permissions_FKIndex1(users_iduser),
  7.   INDEX users_link_permissions_FKIndex2(permissions_idpermissions),
  8.   INDEX users_link_permissions_FKIndex3(site_idsite),
  9.   INDEX PRIMARY(site_idsite, permissions_idpermissions, users_iduser)
  10. );


 
Merci d'avance je suis un peu perdu
Matthieu


Message édité par matthieu_phpmv le 30-06-2005 à 14:48:06

---------------
développeur de phpMyVisites mesure d'audience de sites Internet
mood
Publicité
Posté le 30-06-2005 à 14:47:32  profilanswer
 

n°1136644
Arjuna
Aircraft Ident.: F-MBSD
Posté le 30-06-2005 à 23:37:14  profilanswer
 

Oui, une PK est par défaut un index unique, généralement arrangé en cluster (l'ordre des données dans la table sont dans le même ordre que dans l'index).
 
Donc tu conserves la première solution ;)

n°1136753
matthieu_p​hpmv
Posté le 01-07-2005 à 08:43:38  profilanswer
 

Ok mais même sous MySQL ?
 
Car le logiciel  DBDesigner me donne le code avec les index crées, comme si il voulait créer les index en plus des clés primaires.
Est ce dans la documentation officielle ou la norme ansi sql cette propriété ?
Merci !:)


---------------
développeur de phpMyVisites mesure d'audience de sites Internet
n°1136982
Arjuna
Aircraft Ident.: F-MBSD
Posté le 01-07-2005 à 11:23:03  profilanswer
 

Je pense que MySQl fait aussi un UIX sur une PK automatiquement.
 
Ce n'est pas dans la norme (uniquement une contrainte unique), mais la plupart des SGBD font directement un UIX.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [mysql] une clé primaire est elle par défaut un index ?

 

Sujets relatifs
Aide MySQL[php/mysql] commande insert into
Divers petit probleme mysql/phpmyadminpb de connection a une base mysql et de create table
Programmation en C de MySQLUtilisation des API C de MySQL
[MySQL] Reconstruire une base de données sans les fichiers .myiEquivalent AUTOINCREMENT en MySQL?
Connaissez vous un FrameWork Open Source travaillant avec PHP MYSQL ?requete avec array et mysql
Plus de sujets relatifs à : [mysql] une clé primaire est elle par défaut un index ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR