· 9 years ago · Nov 03, 2016, 10:52 PM
1--
2-- Base de datos: `dbrs`
3--
4CREATE DATABASE IF NOT EXISTS `dbrs` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
5USE `dbrs`;
6
7-- --------------------------------------------------------
8
9--
10-- Estructura de tabla para la tabla `administrador_sistema`
11--
12DROP TABLE IF EXISTS `administrador_sistema`;
13CREATE TABLE IF NOT EXISTS `administrador_sistema` (
14 `administrador_id` int(11) NOT NULL,
15 `nombre` varchar(150) NOT NULL,
16 `ap_paterno` varchar(150) DEFAULT NULL,
17 `ap_materno` varchar(150) DEFAULT NULL,
18 `telefono` varchar(20) NOT NULL,
19 `correo` varchar(150) NOT NULL,
20 `contrase_na` varchar(200) NOT NULL DEFAULT '123'
21) ENGINE=InnoDB DEFAULT CHARSET=latin1;
22
23--
24-- Estructura de tabla para la tabla `coordenadas`
25--
26
27DROP TABLE IF EXISTS `coordenadas`;
28CREATE TABLE IF NOT EXISTS `coordenadas` (
29 `coordenadas_id` int(11) NOT NULL,
30 `longitud` double NOT NULL,
31 `latitud` double NOT NULL,
32 `detalle_id` int(11) NOT NULL
33) ENGINE=InnoDB DEFAULT CHARSET=latin1;
34
35--
36-- Estructura de tabla para la tabla `departamento`
37--
38
39DROP TABLE IF EXISTS `departamento`;
40CREATE TABLE IF NOT EXISTS `departamento` (
41 `departamento_id` int(11) NOT NULL,
42 `nombre` varchar(250) NOT NULL,
43 `telefono` varchar(25) DEFAULT NULL,
44 `correo` varchar(50) DEFAULT NULL,
45 `direccion` varchar(500) DEFAULT NULL,
46 `empresa_id` int(11) NOT NULL
47) ENGINE=InnoDB DEFAULT CHARSET=latin1;
48
49--
50-- Disparadores `departamento`
51--
52DROP TRIGGER IF EXISTS `eliminarDepartamento_BD_TRIGGER`;
53DELIMITER $$
54CREATE TRIGGER `eliminarDepartamento_BD_TRIGGER` BEFORE DELETE ON `departamento`
55 FOR EACH ROW BEGIN
56UPDATE gps SET departamento_id = NULL WHERE gps.departamento_id = OLD.departamento_id;
57DELETE FROM usuarios WHERE usuarios.departamento_id = OLD.departamento_id;
58END
59$$
60DELIMITER ;
61
62-- --------------------------------------------------------
63
64--
65-- Estructura de tabla para la tabla `detalle`
66--
67
68DROP TABLE IF EXISTS `detalle`;
69CREATE TABLE IF NOT EXISTS `detalle` (
70 `detalle_id` int(11) NOT NULL,
71 `fecha` datetime NOT NULL,
72 `enlace_id` int(11) NOT NULL
73) ENGINE=InnoDB DEFAULT CHARSET=latin1;
74
75--
76-- Disparadores `detalle`
77--
78DROP TRIGGER IF EXISTS `eliminarDetalle_BD_TRIGGER`;
79DELIMITER $$
80CREATE TRIGGER `eliminarDetalle_BD_TRIGGER` BEFORE DELETE ON `detalle` FOR EACH ROW BEGIN
81 DELETE FROM coordenadas WHERE coordenadas.detalle_id = OLD.detalle_id;
82END
83$$
84DELIMITER ;
85
86-- --------------------------------------------------------
87
88--
89-- Estructura de tabla para la tabla `empresa_cliente`
90--
91
92DROP TABLE IF EXISTS `empresa_cliente`;
93CREATE TABLE IF NOT EXISTS `empresa_cliente` (
94 `empresa_id` int(11) NOT NULL,
95 `nombre` varchar(150) NOT NULL,
96 `telefono` varchar(20) DEFAULT NULL,
97 `correo` varchar(50) DEFAULT NULL,
98 `status` varchar(1) DEFAULT '0'
99) ENGINE=InnoDB DEFAULT CHARSET=latin1;
100
101--
102-- Disparadores `empresa_cliente`
103--
104DROP TRIGGER IF EXISTS `eliminarEmpresa_cliente_BD_TRIGGER`;
105DELIMITER $$
106CREATE TRIGGER `eliminarEmpresa_cliente_BD_TRIGGER` BEFORE DELETE ON `empresa_cliente` FOR EACH ROW BEGIN
107DELETE FROM departamento WHERE departamento.empresa_id = OLD.empresa_id;
108END
109$$
110DELIMITER ;
111
112-- --------------------------------------------------------
113
114--
115-- Estructura de tabla para la tabla `enlace`
116--
117
118DROP TABLE IF EXISTS `enlace`;
119CREATE TABLE IF NOT EXISTS `enlace` (
120 `enlace_id` int(11) NOT NULL,
121 `usuario_id` int(11) NOT NULL,
122 `gps_id` int(11) NOT NULL
123) ENGINE=InnoDB DEFAULT CHARSET=latin1;
124
125--
126-- Disparadores `enlace`
127--
128DROP TRIGGER IF EXISTS `eliminarEnlace_BD_TRIGGER`;
129DELIMITER $$
130CREATE TRIGGER `eliminarEnlace_BD_TRIGGER` BEFORE DELETE ON `enlace` FOR EACH ROW BEGIN
131DELETE FROM detalle WHERE detalle.enlace_id = OLD.enlace_id;
132END
133$$
134DELIMITER ;
135
136-- --------------------------------------------------------
137
138--
139-- Estructura de tabla para la tabla `gps`
140--
141
142DROP TABLE IF EXISTS `gps`;
143CREATE TABLE IF NOT EXISTS `gps` (
144 `gps_id` int(11) NOT NULL,
145 `imei` varchar(100) DEFAULT NULL,
146 `numero` varchar(25) NOT NULL,
147 `descripcion` varchar(250) NOT NULL,
148 `autorastreo` varchar(50) DEFAULT 'nofix' COMMENT 'este campo sera llenado con la informacion que se requiere para poder rastrear el dispositivo cada cierto tiempo y en ciertas cantidades\nfix030s5n+password\nnofix+password',
149 `departamento_id` int(11)
150) ENGINE=InnoDB DEFAULT CHARSET=latin1;
151
152--
153-- Disparadores `gps`
154--
155DROP TRIGGER IF EXISTS `eliminarGps_BD_TRIGGER`;
156DELIMITER $$
157CREATE TRIGGER `eliminarGps_BD_TRIGGER` BEFORE DELETE ON `gps`
158 FOR EACH ROW BEGIN
159DELETE FROM enlace WHERE enlace.gps_id = OLD.gps_id;
160END
161$$
162DELIMITER ;
163
164-- --------------------------------------------------------
165
166--
167-- Estructura de tabla para la tabla `usuarios`
168--
169
170DROP TABLE IF EXISTS `usuarios`;
171CREATE TABLE IF NOT EXISTS `usuarios` (
172 `usuario_id` int(11) NOT NULL,
173 `nombre` varchar(150) NOT NULL,
174 `ap_paterno` varchar(150) DEFAULT NULL,
175 `ap_materno` varchar(150) DEFAULT NULL,
176 `telefono` varchar(20) NOT NULL,
177 `correo` varchar(150) NOT NULL,
178 `contrase_na` varchar(200) NOT NULL DEFAULT '123',
179 `departamento_id` int(11) NOT NULL
180) ENGINE=InnoDB DEFAULT CHARSET=latin1;
181
182--
183-- Disparadores `usuarios`
184--
185DELIMITER $$
186CREATE TRIGGER `eliminarUsuarios_BD_TRIGGER` BEFORE DELETE ON `usuarios`
187 FOR EACH ROW BEGIN
188DELETE FROM enlace WHERE enlace.usuario_id = OLD.usuario_id;
189END
190$$
191DELIMITER ;
192
193--
194-- claves para tablas
195--
196ALTER TABLE `administrador_sistema`
197 ADD PRIMARY KEY (`administrador_id`);
198
199ALTER TABLE `coordenadas`
200 ADD PRIMARY KEY (`coordenadas_id`),
201
202ALTER TABLE `departamento`
203 ADD PRIMARY KEY (`departamento_id`),
204
205ALTER TABLE `detalle`
206 ADD PRIMARY KEY (`detalle_id`),
207 ADD KEY `idx_detalle` (`enlace_id`);
208
209ALTER TABLE `empresa_cliente`
210 ADD PRIMARY KEY (`empresa_id`);
211
212ALTER TABLE `enlace`
213 ADD PRIMARY KEY (`enlace_id`),
214
215ALTER TABLE `gps`
216 ADD PRIMARY KEY (`gps_id`),
217
218ALTER TABLE `usuarios`
219 ADD PRIMARY KEY (`usuario_id`),
220
221ALTER TABLE `administrador_sistema`
222 MODIFY `administrador_id` int(11) NOT NULL AUTO_INCREMENT;
223
224ALTER TABLE `coordenadas`
225 MODIFY `coordenadas_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
226
227ALTER TABLE `departamento`
228 MODIFY `departamento_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;
229
230ALTER TABLE `detalle`
231 MODIFY `detalle_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
232
233ALTER TABLE `empresa_cliente`
234 MODIFY `empresa_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;
235
236ALTER TABLE `enlace`
237 MODIFY `enlace_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;
238
239ALTER TABLE `gps`
240 MODIFY `gps_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;
241
242ALTER TABLE `usuarios`
243 MODIFY `usuario_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;
244
245ALTER TABLE `coordenadas`
246 ADD CONSTRAINT `fk_coordenadas` FOREIGN KEY (`detalle_id`) REFERENCES `detalle` (`detalle_id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
247
248ALTER TABLE `departamento`
249 ADD CONSTRAINT `fk_departamento` FOREIGN KEY (`empresa_id`) REFERENCES `empresa_cliente` (`empresa_id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
250
251ALTER TABLE `detalle`
252 ADD CONSTRAINT `fk_detalle` FOREIGN KEY (`enlace_id`) REFERENCES `enlace` (`enlace_id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
253
254ALTER TABLE `enlace`
255 ADD CONSTRAINT `fk_enlace` FOREIGN KEY (`gps_id`) REFERENCES `gps` (`gps_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
256 ADD CONSTRAINT `fk_enlace_0` FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`usuario_id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
257
258ALTER TABLE `gps`
259 ADD CONSTRAINT `fk_gps` FOREIGN KEY (`departamento_id`) REFERENCES `departamento` (`departamento_id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
260
261ALTER TABLE `usuarios`
262 ADD CONSTRAINT `fk_usuarios` FOREIGN KEY (`departamento_id`) REFERENCES `departamento` (`departamento_id`) ON DELETE NO ACTION ON UPDATE NO ACTION;