Bonjour
je fais la requéte suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
ALTER TABLE comp_comp 
ADD CONSTRAINT FK_comp_comp_id_auteur FOREIGN KEY ( id_auteur ) 
REFERENCES spip_auteurs( id_auteur ) ;
sur un easyphp avec un SQL 4.1.9 la requête passe, par contre sur une 5.0.51b de wampserver cela ne passe pas.

Voici le retour
MySQL a réponduocumentation
#1005 - Can't create table '.\spip-comp\#sql-984_23.frm' (errno: 150)

Et voici la requête complete.

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
CREATE TABLE comp_ma (id_matiere int NOT NULL, nom_matiere varchar(30), code_matiere varchar(30));
 
#CREATE TABLE spip_auteurs (id_auteur int NOT NULL, nom text, bio text, email text);
 
CREATE TABLE comp_cl (id_classe int NOT NULL, designation varchar(30), annee varchar(10));
 
CREATE TABLE comp_dev_act (id_doc int NOT NULL, nom_doc varchar(30), dev_act varchar(10));
 
CREATE TABLE comp_comp (id_competence int NOT NULL, design_comp varchar(30), repere varchar(20), s_sf varchar(10), niveau varchar(10), ci varchar(30), id_auteur int);
 
#CREATE TABLE spip_article (id_article int NOT NULL);
 
CREATE TABLE comp_ens_rec (id_auteur int NOT NULL, id_matiere int NOT NULL);
 
CREATE TABLE comp_app_resp (id_auteur int NOT NULL, id_classe int NOT NULL);
 
CREATE TABLE comp_com_cre (id_auteur int NOT NULL, id_doc int NOT NULL);
 
CREATE TABLE comp_port (id_doc int NOT NULL, id_competence int NOT NULL);
 
CREATE TABLE comp_doc (id_doc int NOT NULL, id_article int NOT NULL);
 
ALTER TABLE comp_ma ADD CONSTRAINT PK_comp_ma PRIMARY KEY (id_matiere);
 
ALTER TABLE spip_auteurs ADD CONSTRAINT PK_spip_auteurs PRIMARY KEY (id_auteur);
 
ALTER TABLE comp_cl ADD CONSTRAINT PK_comp_cl PRIMARY KEY (id_classe);
 
ALTER TABLE comp_dev_act ADD CONSTRAINT PK_comp_dev_act PRIMARY KEY (id_doc);
 
ALTER TABLE comp_comp ADD CONSTRAINT PK_comp_comp PRIMARY KEY (id_competence);
 
ALTER TABLE spip_article ADD CONSTRAINT PK_spip_article PRIMARY KEY (id_article);
 
ALTER TABLE comp_ens_rec ADD CONSTRAINT PK_comp_ens_rec PRIMARY KEY (id_auteur, id_matiere);
 
ALTER TABLE comp_app_resp ADD CONSTRAINT PK_comp_app_resp PRIMARY KEY (id_auteur, id_classe);
 
ALTER TABLE comp_com_cre ADD CONSTRAINT PK_comp_com_cre PRIMARY KEY (id_auteur, id_doc);
 
ALTER TABLE comp_port ADD CONSTRAINT PK_comp_port PRIMARY KEY (id_doc, id_competence);
 
ALTER TABLE comp_doc ADD CONSTRAINT PK_comp_doc PRIMARY KEY (id_doc, id_article);
 
ALTER TABLE comp_comp ADD CONSTRAINT FK_comp_comp_id_auteur FOREIGN KEY (id_auteur) REFERENCES spip_auteurs (id_auteur);
 
ALTER TABLE comp_ens_rec ADD CONSTRAINT FK_comp_ens_rec_id_auteur FOREIGN KEY (id_auteur) REFERENCES spip_auteurs (id_auteur);
 
ALTER TABLE comp_ens_rec ADD CONSTRAINT FK_comp_ens_rec_id_matiere FOREIGN KEY (id_matiere) REFERENCES comp_ma (id_matiere);
 
ALTER TABLE comp_app_resp ADD CONSTRAINT FK_comp_app_resp_id_auteur FOREIGN KEY (id_auteur) REFERENCES spip_auteurs (id_auteur);
 
ALTER TABLE comp_app_resp ADD CONSTRAINT FK_comp_app_resp_id_classe FOREIGN KEY (id_classe) REFERENCES comp_cl (id_classe);
 
ALTER TABLE comp_com_cre ADD CONSTRAINT FK_comp_com_cre_id_auteur FOREIGN KEY (id_auteur) REFERENCES spip_auteurs (id_auteur);
 
ALTER TABLE comp_com_cre ADD CONSTRAINT FK_comp_com_cre_id_doc FOREIGN KEY (id_doc) REFERENCES comp_dev_act (id_doc);
 
ALTER TABLE comp_port ADD CONSTRAINT FK_comp_port_id_doc FOREIGN KEY (id_doc) REFERENCES comp_dev_act (id_doc);
 
ALTER TABLE comp_port ADD CONSTRAINT FK_comp_port_id_competence FOREIGN KEY (id_competence) REFERENCES comp_comp (id_competence);
 
ALTER TABLE comp_doc ADD CONSTRAINT FK_comp_doc_id_doc FOREIGN KEY (id_doc) REFERENCES comp_dev_act (id_doc);
 
ALTER TABLE comp_doc ADD CONSTRAINT FK_comp_doc_id_article FOREIGN KEY (id_article) REFERENCES spip_article (id_article);

Je ne suis pas du tout spécialiste. Mon travail passe par une création merise à partir de analyseSI puis création des requête Sql avec le même logiciel. Ensuite jonction avec un SPIP. C'est tiré par les cheveux, je sais, mais ce qui m'intéresse c'est la possibilité de gérer des compétences sur des élèves des classes des matières des profs.
http://www.philippeavi.net/lyc-vincendo2/merise.png

Merci pour vos suggestions.