problemas clave foranea
Publicado por Victor (1 intervención) el 20/08/2018 02:49:46
Estoy haciendo una base de datos que alberga datos de transporte publico y tengo un pequeño desface
este es mi SQL:
el único problema es que lo probe varias veces en fiddle por si era un error mio, cada bus que creo comparte el mismo lector y operador, y no deberia ser asi un solo bus deberia tener un operador y un lector... me gustaria que me ayuden por favor...
este es mi SQL:
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
CREATE TABLE IF NOT EXISTS .`lineas` (
`idlineas` INT NOT NULL AUTO_INCREMENT, `numero` INT NOT NULL,PRIMARY KEY (`idlineas`));
CREATE TABLE IF NOT EXISTS `trayectos` ( `idtrayectos` INT NOT NULL AUTO_INCREMENT,`ramal` VARCHAR(30) NOT NULL,
`itinerario` VARCHAR(500) NOT NULL,
PRIMARY KEY (`idtrayectos`));
CREATE TABLE IF NOT EXISTS `tipo_buses` ( `idtipo_buses` INT NOT NULL AUTO_INCREMENT,`descripcion` VARCHAR(15) NOT NULL,
PRIMARY KEY (`idtipo_buses`));
CREATE TABLE IF NOT EXISTS `empresas` ( `idempresas` INT NOT NULL AUTO_INCREMENT,PRIMARY KEY (`idempresas`));
CREATE TABLE IF NOT EXISTS `operador` ( `idoperador` INT NOT NULL AUTO_INCREMENT,PRIMARY KEY (`idoperador`));
CREATE TABLE IF NOT EXISTS `lectores` ( `idlectores` INT NOT NULL AUTO_INCREMENT,`serie` VARCHAR(20) NOT NULL,
PRIMARY KEY (`idlectores`, `serie`));
CREATE TABLE IF NOT EXISTS `buses` ( `idbuses` INT NOT NULL AUTO_INCREMENT, `idtipo_buses` INT NOT NULL, `idlineas` INT NOT NULL, `idempresas` INT NOT NULL,`chapa` VARCHAR(12) NOT NULL,
`coche_numero` INT NOT NULL,`observaciones` VARCHAR(45) NULL,
PRIMARY KEY (`idbuses`, `idtipo_buses`, `idlineas`, `idempresas`),
UNIQUE INDEX `chapa_UNIQUE` (`chapa` ASC),
UNIQUE INDEX `coche_numero_UNIQUE` (`coche_numero` ASC),
CONSTRAINT `fk_tipo_buses_tipo_buses1`
FOREIGN KEY (`idtipo_buses`)
REFERENCES `tipo_buses` (`idtipo_buses`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,CONSTRAINT `fk_lineas_lineas1`
FOREIGN KEY (`idlineas`)
REFERENCES `lineas` (`idlineas`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,CONSTRAINT `fk_empresas_empresas1`
FOREIGN KEY (`idempresas`)
REFERENCES `empresas` (`idempresas`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);CREATE TABLE IF NOT EXISTS `buses_has_trayectos` ( `idbuses` INT NOT NULL, `idtrayectos` INT NOT NULL, `idoperador` INT NOT NULL, `idlectores` INT NOT NULL,`serie` VARCHAR(20) NOT NULL,
PRIMARY KEY (`idbuses`, `idtrayectos`, `idoperador`, `idlectores`, `serie`),
CONSTRAINT `fk_buses_buses1`
FOREIGN KEY (`idbuses`)
REFERENCES `buses` (`idbuses`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,CONSTRAINT `fk_trayectos_trayectos1`
FOREIGN KEY (`idtrayectos`)
REFERENCES `trayectos` (`idtrayectos`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,CONSTRAINT `fk_operador_operador1`
FOREIGN KEY (`idoperador`)
REFERENCES `operador` (`idoperador`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,CONSTRAINT `fk_lectores_lectores1`
FOREIGN KEY (`idlectores` , `serie`)
REFERENCES `lectores` (`idlectores` , `serie`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);el único problema es que lo probe varias veces en fiddle por si era un error mio, cada bus que creo comparte el mismo lector y operador, y no deberia ser asi un solo bus deberia tener un operador y un lector... me gustaria que me ayuden por favor...
Valora esta pregunta


0
