· 5 years ago · Nov 25, 2020, 10:36 PM
1-- --------------------------------------------------------
2-- Host: 127.0.0.1
3-- Versión del servidor: 10.4.14-MariaDB - mariadb.org binary distribution
4-- SO del servidor: Win64
5-- HeidiSQL Versión: 11.1.0.6118
6-- --------------------------------------------------------
7
8/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
9/*!40101 SET NAMES utf8 */;
10/*!50503 SET NAMES utf8mb4 */;
11/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
12/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
13/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
14
15
16-- Volcando estructura de base de datos para redsocialbd
17CREATE DATABASE IF NOT EXISTS `redsocialbd` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
18USE `redsocialbd`;
19
20-- Volcando estructura para procedimiento redsocialbd.agregar_amigo
21DELIMITER //
22CREATE PROCEDURE `agregar_amigo`(
23 IN `mi_id` CHAR(50),
24 IN `amigo_id` CHAR(50)
25)
26BEGIN
27 DECLARE aux CHAR(50) DEFAULT "";
28 if EXISTS(SELECT usuarios_id FROM usuarios WHERE usuarios_id = amigo_id) then
29 if NOT EXISTS(SELECT usuario_id_amigo FROM amistades WHERE usuario_id_1 = mi_id AND usuario_id_amigo = amigo_id) then
30 INSERT INTO amistades
31 SELECT 0, (SELECT usuarios_id AS 'u_1' FROM usuarios WHERE usuarios_id = mi_id) AS 'mi_id', usuarios_id AS 'amigo_id'
32 FROM usuarios
33 WHERE usuarios_id = amigo_id;
34 set aux = 'amigo agregado';
35 else
36 set aux = 'el amigo especificado ya se encuentra en tu lista de amigos';
37 END if;
38 else
39 set aux = 'el id especificado no se encuentra registrado';
40 END if;
41 SELECT aux;
42END//
43DELIMITER ;
44
45-- Volcando estructura para procedimiento redsocialbd.agregar_publicacion
46DELIMITER //
47CREATE PROCEDURE `agregar_publicacion`(
48 IN `mi_id` CHAR(50),
49 IN `cont` CHAR(50),
50 IN `categoria_id` CHAR(50)
51)
52BEGIN
53 DECLARE aux CHAR(50) DEFAULT "";
54 if EXISTS(SELECT CategoriasDePost_id FROM categoriasdepost WHERE CategoriasDePost_id = categoria_id) then
55 INSERT INTO posteos (posteos_id, contenido, fechaDePublicacion, categoriaDePost_id, usuario_id_2)
56 VALUES (0, cont, CURDATE(), categoria_id, mi_id);
57 set aux = 'publicacion agregada';
58 else
59 SET aux = 'no se encontro la categoria especificada';
60 END if;
61 SELECT aux;
62END//
63DELIMITER ;
64
65-- Volcando estructura para tabla redsocialbd.amistades
66CREATE TABLE IF NOT EXISTS `amistades` (
67 `amistades_id` int(11) NOT NULL AUTO_INCREMENT,
68 `usuario_id_1` int(11) DEFAULT NULL,
69 `usuario_id_amigo` int(11) DEFAULT NULL,
70 PRIMARY KEY (`amistades_id`),
71 KEY `usuario_id_1` (`usuario_id_1`),
72 KEY `usuario_id_amigo` (`usuario_id_amigo`),
73 CONSTRAINT `amistades_ibfk_1` FOREIGN KEY (`usuario_id_1`) REFERENCES `usuarios` (`usuarios_id`),
74 CONSTRAINT `amistades_ibfk_2` FOREIGN KEY (`usuario_id_amigo`) REFERENCES `usuarios` (`usuarios_id`)
75) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4;
76
77-- La exportación de datos fue deseleccionada.
78
79-- Volcando estructura para tabla redsocialbd.categoriasdepost
80CREATE TABLE IF NOT EXISTS `categoriasdepost` (
81 `CategoriasDePost_id` int(11) NOT NULL AUTO_INCREMENT,
82 `nombre` varchar(100) DEFAULT NULL,
83 `descripcion` varchar(150) DEFAULT NULL,
84 PRIMARY KEY (`CategoriasDePost_id`)
85) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4;
86
87-- La exportación de datos fue deseleccionada.
88
89-- Volcando estructura para tabla redsocialbd.ciudades
90CREATE TABLE IF NOT EXISTS `ciudades` (
91 `ciudad_id` int(11) NOT NULL AUTO_INCREMENT,
92 `pais_codigo` varchar(2) NOT NULL,
93 `nombre` varchar(100) NOT NULL,
94 PRIMARY KEY (`ciudad_id`)
95) ENGINE=InnoDB AUTO_INCREMENT=269415 DEFAULT CHARSET=utf8mb4;
96
97-- La exportación de datos fue deseleccionada.
98
99-- Volcando estructura para tabla redsocialbd.cuentas
100CREATE TABLE IF NOT EXISTS `cuentas` (
101 `cuenta_id` int(11) NOT NULL AUTO_INCREMENT,
102 `login_name` varchar(50) NOT NULL,
103 `login_pass` varchar(50) NOT NULL,
104 `usuario_id_2` int(11) NOT NULL,
105 `mail_primario` varchar(50) NOT NULL,
106 `mail_secundario` varchar(50) NOT NULL,
107 PRIMARY KEY (`cuenta_id`),
108 KEY `usuario_id_2` (`usuario_id_2`),
109 CONSTRAINT `cuentas_ibfk_1` FOREIGN KEY (`usuario_id_2`) REFERENCES `usuarios` (`usuarios_id`)
110) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;
111
112-- La exportación de datos fue deseleccionada.
113
114-- Volcando estructura para procedimiento redsocialbd.eliminar_amigo
115DELIMITER //
116CREATE PROCEDURE `eliminar_amigo`(
117 IN `mi_id` CHAR(50),
118 IN `amigo_id` CHAR(50)
119)
120BEGIN
121 DECLARE aux CHAR(50) DEFAULT "";
122 if EXISTS(SELECT usuarios_id FROM usuarios WHERE usuarios_id = amigo_id) then
123 if EXISTS(SELECT usuario_id_amigo FROM amistades WHERE usuario_id_1 = mi_id AND usuario_id_amigo = amigo_id) then
124 DELETE FROM amistades
125 WHERE usuario_id_1 = mi_id AND usuario_id_amigo = amigo_id;
126 set aux = 'amigo eliminado';
127 else
128 set aux = 'el amigo especificado no se encuentra en tu lista de amigos';
129 END if;
130 else
131 set aux = 'el id especificado no se encuentra registrado';
132 END if;
133 SELECT aux;
134END//
135DELIMITER ;
136
137-- Volcando estructura para procedimiento redsocialbd.eliminar_cuenta
138DELIMITER //
139CREATE PROCEDURE `eliminar_cuenta`(mi_id CHAR(50))
140BEGIN
141 DECLARE aux CHAR(50) DEFAULT "";
142 CALL eliminar_todas_las_amistades(mi_id);
143 DELETE FROM amistades WHERE usuario_id_amigo = mi_id;
144 CALL eliminar_todas_las_publicaciones(mi_id);
145 DELETE FROM cuentas WHERE cuenta_id = (SELECT cuenta_id FROM cuentas WHERE usuario_id_2 = mi_id);
146 DELETE FROM usuarios WHERE usuarios_id = mi_id;
147 SELECT aux;
148END//
149DELIMITER ;
150
151-- Volcando estructura para procedimiento redsocialbd.eliminar_publicacion
152DELIMITER //
153CREATE PROCEDURE `eliminar_publicacion`(mi_id CHAR(50), post_id CHAR(50))
154BEGIN
155 DECLARE aux CHAR(50) DEFAULT "";
156 if EXISTS(SELECT posteos_id FROM posteos WHERE posteos_id = post_id AND usuario_id_2 = mi_id) then
157 DELETE FROM posteos
158 WHERE usuario_id_2 = mi_id AND posteos_id = post_id;
159 set aux = 'post eliminado';
160 else
161 set aux = 'el post no se encuentra en tu lista de posteos';
162 END if;
163 SELECT aux;
164END//
165DELIMITER ;
166
167-- Volcando estructura para procedimiento redsocialbd.eliminar_todas_las_amistades
168DELIMITER //
169CREATE PROCEDURE `eliminar_todas_las_amistades`(mi_id CHAR(50))
170BEGIN
171 DECLARE aux CHAR(50) DEFAULT "";
172 if EXISTS(SELECT usuario_id_amigo FROM amistades WHERE usuario_id_1 = mi_id) then
173 DELETE FROM amistades
174 WHERE usuario_id_1 = mi_id;
175 set aux = 'lista de amigos eliminada';
176 else
177 set aux = 'tu lista de amigos se encuentra actualmente vacia';
178 END if;
179 SELECT aux;
180END//
181DELIMITER ;
182
183-- Volcando estructura para procedimiento redsocialbd.eliminar_todas_las_publicaciones
184DELIMITER //
185CREATE PROCEDURE `eliminar_todas_las_publicaciones`(mi_id CHAR(50))
186BEGIN
187 DECLARE aux CHAR(50) DEFAULT "";
188 DECLARE contador INT(50) DEFAULT 0;
189 SET contador = (SELECT count(posteos_id) FROM posteos WHERE usuario_id_2 = mi_id);
190 if (contador > 0) then
191 DELETE FROM posteos
192 WHERE usuario_id_2 = mi_id;
193 set aux = CONCAT('se eliminaron ', contador, ' posts');
194 else
195 set aux = 'tu lista de posts se encuentra vacia';
196 END if;
197 SELECT aux;
198END//
199DELIMITER ;
200
201-- Volcando estructura para tabla redsocialbd.paises
202CREATE TABLE IF NOT EXISTS `paises` (
203 `id` int(11) NOT NULL AUTO_INCREMENT,
204 `codigo` varchar(2) NOT NULL,
205 `nombre` varchar(100) NOT NULL,
206 PRIMARY KEY (`id`)
207) ENGINE=InnoDB AUTO_INCREMENT=252 DEFAULT CHARSET=utf8mb4;
208
209-- La exportación de datos fue deseleccionada.
210
211-- Volcando estructura para tabla redsocialbd.posteos
212CREATE TABLE IF NOT EXISTS `posteos` (
213 `posteos_id` int(11) NOT NULL AUTO_INCREMENT,
214 `contenido` varchar(300) NOT NULL,
215 `fechaDePublicacion` date DEFAULT NULL,
216 `categoriaDePost_id` int(11) DEFAULT NULL,
217 `usuario_id_2` int(11) DEFAULT NULL,
218 PRIMARY KEY (`posteos_id`),
219 KEY `categoriaDePost_id` (`categoriaDePost_id`),
220 KEY `usuario_id_2` (`usuario_id_2`),
221 CONSTRAINT `posteos_ibfk_1` FOREIGN KEY (`categoriaDePost_id`) REFERENCES `categoriasdepost` (`CategoriasDePost_id`),
222 CONSTRAINT `posteos_ibfk_2` FOREIGN KEY (`usuario_id_2`) REFERENCES `usuarios` (`usuarios_id`)
223) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4;
224
225-- La exportación de datos fue deseleccionada.
226
227-- Volcando estructura para procedimiento redsocialbd.save_acc
228DELIMITER //
229CREATE PROCEDURE `save_acc`(
230 IN `c_id` CHAR(50),
231 IN `log_n` CHAR(50),
232 IN `log_p` CHAR(50),
233 IN `u_id` CHAR(50),
234 IN `mail_p` CHAR(50),
235 IN `mail_s` CHAR(50)
236)
237BEGIN
238 DECLARE ultimo_id_insertado CHAR(50) DEFAULT '';
239 INSERT INTO cuentas (cuenta_id, login_name, login_pass, usuario_id_2, mail_primario, mail_secundario)
240 VALUES (c_id, log_n, log_p, u_id, mail_p, mail_s)
241 ON DUPLICATE KEY
242 UPDATE login_name = log_n,
243 login_pass = log_p,
244 usuario_id_2 = u_id,
245 mail_primario = mail_p,
246 mail_secundario = mail_s;
247 SET ultimo_id_insertado = LAST_INSERT_ID();
248 SELECT ultimo_id_insertado;
249END//
250DELIMITER ;
251
252-- Volcando estructura para procedimiento redsocialbd.save_user
253DELIMITER //
254CREATE PROCEDURE `save_user`(
255 IN `u_id` CHAR(50),
256 IN `nom` CHAR(50),
257 IN `ape` CHAR(50),
258 IN `ed` CHAR(50),
259 IN `gen` CHAR(50),
260 IN `c_id` CHAR(50),
261 IN `tel` CHAR(50)
262)
263BEGIN
264 DECLARE ultimo_id_insertado CHAR(50) DEFAULT '';
265 INSERT INTO usuarios (usuarios_id, nombre, apellido, edad, genero, ciudad_id_1, telefono)
266 VALUES (u_id, nom, ape, ed, gen, c_id, tel)
267 ON DUPLICATE KEY
268 UPDATE nombre = nom,
269 apellido = ape,
270 edad = ed,
271 genero = gen,
272 ciudad_id_1 = c_id,
273 telefono = tel;
274 SET ultimo_id_insertado = LAST_INSERT_ID();
275 SELECT ultimo_id_insertado;
276END//
277DELIMITER ;
278
279-- Volcando estructura para tabla redsocialbd.usuarios
280CREATE TABLE IF NOT EXISTS `usuarios` (
281 `usuarios_id` int(11) NOT NULL AUTO_INCREMENT,
282 `nombre` varchar(50) NOT NULL,
283 `apellido` varchar(50) NOT NULL,
284 `edad` varchar(3) NOT NULL,
285 `genero` varchar(10) DEFAULT NULL,
286 `ciudad_id_1` int(11) NOT NULL,
287 `telefono` varchar(50) NOT NULL,
288 PRIMARY KEY (`usuarios_id`),
289 KEY `ciudad_ibfk_1` (`ciudad_id_1`),
290 CONSTRAINT `ciudad_ibfk_1` FOREIGN KEY (`ciudad_id_1`) REFERENCES `ciudades` (`ciudad_id`)
291) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;
292
293-- La exportación de datos fue deseleccionada.
294
295/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
296/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
297/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
298/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
299