Bonjour,
Je suis en train de modéliser ma base de données dans le WorkBench de MySQL.
J'ai 2 tables suivantes :
- USER (utilisateur)
- ACTIVITE
Une personne de la table USER peut avoir plusieurs enregistrements de la table activité. J'ai mis en place les relations suivantes :
Les relations sont ainsi :
Quand je synchronise le modèle, je bloque là dessus :
J'ai aussi tenté autre chose : ne pas avoir de table intermédiaire et ajouter la clé étrangère directement dans la table ACTIVITE :
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 -- MySQL Workbench Synchronization -- Generated: 2024-01-13 11:57 -- Model: New Model -- Version: 1.0 -- Project: Name of the project SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; CREATE TABLE IF NOT EXISTS `crjour`.`USER` ( `idUSER` INT(11) NOT NULL AUTO_INCREMENT, `USERlogin` VARCHAR(45) NOT NULL, `USERnom` VARCHAR(45) NOT NULL, `USERprenom` VARCHAR(45) NOT NULL, `USERmdp` VARCHAR(150) NOT NULL, `USERdetruit` CHAR(1) NOT NULL, PRIMARY KEY (`idUSER`), UNIQUE INDEX `idUSER_UNIQUE` (`idUSER` ASC) VISIBLE) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; CREATE TABLE IF NOT EXISTS `crjour`.`ACTIVITE` ( `idACTIVITE` INT(11) NOT NULL AUTO_INCREMENT, `ACTIVITEjour` DATE NOT NULL, `ACTIVITEmoment` VARCHAR(10) NOT NULL, `ACTIVITEreference` VARCHAR(10) NOT NULL, `ACTIVITEliaison` VARCHAR(10) NOT NULL, `ACTIVITEobs` LONGTEXT NOT NULL, `ACTIVITEenvoi` CHAR(1) NOT NULL, `ACTIVITEenvoidate` DATE NULL DEFAULT NULL, PRIMARY KEY (`idACTIVITE`)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; CREATE TABLE IF NOT EXISTS `crjour`.`USER_has_ACTIVITE` ( `USER_idUSER` INT(11) NOT NULL, `ACTIVITE_idACTIVITE` INT(11) NOT NULL, PRIMARY KEY (`ACTIVITE_idACTIVITE`, `USER_idUSER`), INDEX `fk_USER_has_ACTIVITE_ACTIVITE1_idx` (`ACTIVITE_idACTIVITE` ASC) VISIBLE, INDEX `fk_USER_has_ACTIVITE_USER_idx` (`USER_idUSER` ASC) VISIBLE, CONSTRAINT `fk_USER_has_ACTIVITE_USER` FOREIGN KEY (`USER_idUSER`) REFERENCES `crjour`.`USER` (`idUSER`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_USER_has_ACTIVITE_ACTIVITE1` FOREIGN KEY (`ACTIVITE_idACTIVITE`) REFERENCES `crjour`.`ACTIVITE` (`idACTIVITE`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Même souci lors de la synchronisation du modèle :
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 -- MySQL Workbench Synchronization -- Generated: 2024-01-13 12:00 -- Model: New Model -- Version: 1.0 -- Project: Name of the project SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; CREATE TABLE IF NOT EXISTS `crjour`.`USER` ( `idUSER` INT(11) NOT NULL AUTO_INCREMENT, `USERlogin` VARCHAR(45) NOT NULL, `USERnom` VARCHAR(45) NOT NULL, `USERprenom` VARCHAR(45) NOT NULL, `USERmdp` VARCHAR(150) NOT NULL, `USERdetruit` CHAR(1) NOT NULL, PRIMARY KEY (`idUSER`), UNIQUE INDEX `idUSER_UNIQUE` (`idUSER` ASC) VISIBLE) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; CREATE TABLE IF NOT EXISTS `crjour`.`ACTIVITE` ( `idACTIVITE` INT(11) NOT NULL AUTO_INCREMENT, `ACTIVITEjour` DATE NOT NULL, `ACTIVITEmoment` VARCHAR(10) NOT NULL, `ACTIVITEreference` VARCHAR(10) NOT NULL, `ACTIVITEliaison` VARCHAR(10) NOT NULL, `ACTIVITEobs` LONGTEXT NOT NULL, `ACTIVITEenvoi` CHAR(1) NOT NULL, `ACTIVITEenvoidate` DATE NULL DEFAULT NULL, `idUSER` INT(11) NOT NULL, PRIMARY KEY (`idACTIVITE`), INDEX `USER.idUSER_idx` (`idUSER` ASC) VISIBLE, CONSTRAINT `USER.idUSER` FOREIGN KEY (`idUSER`) REFERENCES `crjour`.`USER` (`idUSER`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Je ne comprends pas ce qui ne va pas.
Si on peut m'aiguiller ?
Merci bcp.
Partager