matthieu_phpmv | 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 :
- CREATE TABLE users_link_permissions (
- site_idsite INTEGER UNSIGNED NOT NULL,
- permissions_idpermissions INTEGER UNSIGNED NOT NULL,
- users_iduser INTEGER UNSIGNED NOT NULL,
- PRIMARY KEY(site_idsite, permissions_idpermissions, users_iduser),
- );
|
ou
Code :
- CREATE TABLE users_link_permissions (
- site_idsite INTEGER UNSIGNED NOT NULL,
- permissions_idpermissions INTEGER UNSIGNED NOT NULL,
- users_iduser INTEGER UNSIGNED NOT NULL,
- PRIMARY KEY(site_idsite, permissions_idpermissions, users_iduser),
- INDEX users_link_permissions_FKIndex1(users_iduser),
- INDEX users_link_permissions_FKIndex2(permissions_idpermissions),
- INDEX users_link_permissions_FKIndex3(site_idsite),
- );
|
ou
Code :
- CREATE TABLE users_link_permissions (
- site_idsite INTEGER UNSIGNED NOT NULL,
- permissions_idpermissions INTEGER UNSIGNED NOT NULL,
- users_iduser INTEGER UNSIGNED NOT NULL,
- PRIMARY KEY(site_idsite, permissions_idpermissions, users_iduser),
- INDEX users_link_permissions_FKIndex1(users_iduser),
- INDEX users_link_permissions_FKIndex2(permissions_idpermissions),
- INDEX users_link_permissions_FKIndex3(site_idsite),
- INDEX PRIMARY(site_idsite, permissions_idpermissions, users_iduser)
- );
|
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
|