Doute sur les definitions de clefs en "CREATE TABLE" - PRIMARY KEY + UNIQUE KEY + key + index
Bonjour,
J'ai un gros doute sur la conception lors des "CREATE TABLE"
Exemple concret , on va considérer une table "clients" avec le PRIMARY KEY + UNIQUE KEY + key + index ou l'on stock des numéros de clients de manière unique :
cas 1 sans id :
Code:
1 2 3 4 5 6 7 8 9 10 11
| CREATE TABLE IF NOT EXISTS client (
num_client int(11) NOT NULL ,
type_client varchar(25) NOT NULL ,
fk_departement_client varchar(5) NOT NULL
date_insertion datetime NOT NULL,
PRIMARY KEY (num_client),
UNIQUE KEY (num_client),
key (num_client,departement_client),
index (num_client,departement_client),
CONSTRAINT departement_fk FOREIGN KEY (fk_departement_client) REFERENCES departement (departement_client)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin ; |
cas 2 avec id :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| CREATE TABLE IF NOT EXISTS client (
id_ligne int(11) auto_increment ,
num_client int(11) NOT NULL ,
type_client varchar(25) NOT NULL ,
fk_departement_client varchar(5) NOT NULL
date_insertion datetime NOT NULL,
PRIMARY KEY (id_ligne),
UNIQUE KEY (num_client),
key (num_client,departement_client),
index (id_ligne,num_client,departement_client),
CONSTRAINT departement_fk FOREIGN KEY (fk_departement_client) REFERENCES departement (departement_client)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin ; |
Merci de m'aiguiller et de dire ce qui cloche avec " PRIMARY KEY + UNIQUE KEY + key + index "