Bonjour,

Voici trois tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
CREATE TABLE IF NOT EXISTS tblparcours(
	id int(255) unsigned not null auto_increment,
	nom varchar(200),
	id_createur  int(255) unsigned not null,
	id_user TEXT,
	date_creation DATETIME default "0000-00-00 00:00:00.0",
	date_last_modif DATETIME default "0000-00-00 00:00:00.0",
	id_cours TEXT,			
	id_cours_fini TEXT,	
	activite tinyint unsigned default '0',
	PRIMARY KEY(id)
	);
CREATE TABLE IF NOT EXISTS tblgroupe(
	id int(255) unsigned not null auto_increment,
	id_createur int(255) unsigned not null, /*identité de l'enseignant qui suit la formation de ce groupe*/
	nom varchar(200),
	date_creation DATETIME "0000-00-00 00:00:00.0",
	date_last_modif DATETIME "0000-00-00 00:00:00.0",
	id_apprenti int unsigned, 			
	activite tinyint unsigned default 0,	
	PRIMARY KEY(id)
);
 
create table if not exists tblprogression(
	id int(255) unsigned not null auto_increment,
	id_user int unsigned,
	id_parcours int unsigned,
	progression_state text,
	date_last_modif DATETIME DEFAULT "0000-00-00 00:00:00.0",
	entite varchar(20),
	PRIMARY KEY(id),
	INDEX (id_parcours),
    FOREIGN KEY (id_parcours) REFERENCES tblparcours(id)
                     ON DELETE CASCADE
					 ON UPDATE NO ACTION
	)TYPE=INNODB;
Je ne suis pas très à l'aise avec les clés étrangères.
Je désire que les lignes de tblprogression se suppriment lorsque l'on efface une ligne de tblparcours (ça, c'est bon, j'y arrive), OU lorsque l'on supprime une ligne de tblgroupe.

J'avais bien pensé à ajouter dans la table tbl progression le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
	INDEX (id_user),
    FOREIGN KEY (id_user) REFERENCES tblgroupe(id_apprenti)
                     ON DELETE CASCADE
					 ON UPDATE NO ACTION
de sorte à avoir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
create table if not exists tblprogression(
	id int(255) unsigned not null auto_increment,
	id_user int unsigned,
	id_parcours int unsigned,
	progression_state text,
	date_last_modif DATETIME DEFAULT "0000-00-00 00:00:00.0",
	entite varchar(20),
	PRIMARY KEY(id),
	INDEX (id_parcours),
    FOREIGN KEY (id_parcours) REFERENCES tblparcours(id)
                     ON DELETE CASCADE
					 ON UPDATE NO ACTION
INDEX (id_user),
    FOREIGN KEY (id_user) REFERENCES tblgroupe(id_apprenti)
                     ON DELETE CASCADE
					 ON UPDATE NO ACTION
	)TYPE=INNODB;
Mais cela me paraît trop simple!!!!

Pouvez-vous orienter ma démarche ?
Merci