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