Repository navigation
Expand file tree
/
Copy pathdatabase.sql
More file actions
111 lines (101 loc) · 5.74 KB
/
Copy pathdatabase.sql
File metadata and controls
111 lines (101 loc) · 5.74 KB
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
-- ============================================
-- AccesWaze - Base de Datos v2.0
-- Importar en phpMyAdmin
-- ============================================
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
CREATE DATABASE IF NOT EXISTS `accesWaze`
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE `accesWaze`;
-- ----------------------------------------
-- Tabla: usuarios
-- ----------------------------------------
DROP TABLE IF EXISTS `calificaciones`;
DROP TABLE IF EXISTS `comentarios`;
DROP TABLE IF EXISTS `reportes`;
DROP TABLE IF EXISTS `usuarios`;
CREATE TABLE `usuarios` (
`id` INT NOT NULL AUTO_INCREMENT,
`nombre` VARCHAR(100) NOT NULL,
`email` VARCHAR(150) NOT NULL,
`contrasena` VARCHAR(255) NOT NULL,
`rol` ENUM('usuario','admin') NOT NULL DEFAULT 'usuario',
`perfil` ENUM('movilidad_reducida','baja_vision','ceguera','adulto_mayor','general') NOT NULL DEFAULT 'general',
`avatar` VARCHAR(255) DEFAULT NULL,
`activo` TINYINT(1) NOT NULL DEFAULT 1,
`fecha_registro` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`ultimo_acceso` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ----------------------------------------
-- Tabla: reportes
-- ----------------------------------------
CREATE TABLE `reportes` (
`id` INT NOT NULL AUTO_INCREMENT,
`titulo` VARCHAR(200) NOT NULL,
`descripcion` TEXT NOT NULL,
`imagen` VARCHAR(255) DEFAULT NULL,
`latitud` DECIMAL(10,8) NOT NULL,
`longitud` DECIMAL(11,8) NOT NULL,
`direccion` VARCHAR(300) DEFAULT NULL,
`tipo` ENUM('obstaculo','falta_rampa','mal_estado_anden','semaforo','escalera','vado','mobiliario','cruce_inseguro') NOT NULL,
`estado` ENUM('activo','resuelto','en_revision') NOT NULL DEFAULT 'activo',
`usuario_id` INT NOT NULL,
`fecha_creacion` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`fecha_update` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_tipo` (`tipo`),
KEY `idx_estado` (`estado`),
KEY `idx_usuario_id` (`usuario_id`),
CONSTRAINT `fk_reportes_usuario`
FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ----------------------------------------
-- Tabla: comentarios
-- ----------------------------------------
CREATE TABLE `comentarios` (
`id` INT NOT NULL AUTO_INCREMENT,
`contenido` TEXT NOT NULL,
`usuario_id` INT NOT NULL,
`reporte_id` INT NOT NULL,
`fecha` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_reporte_id` (`reporte_id`),
CONSTRAINT `fk_comentarios_usuario`
FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_comentarios_reporte`
FOREIGN KEY (`reporte_id`) REFERENCES `reportes` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ----------------------------------------
-- Tabla: calificaciones
-- ----------------------------------------
CREATE TABLE `calificaciones` (
`id` INT NOT NULL AUTO_INCREMENT,
`puntuacion` TINYINT NOT NULL CHECK (`puntuacion` BETWEEN 1 AND 5),
`usuario_id` INT NOT NULL,
`reporte_id` INT NOT NULL,
`fecha` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_calificacion` (`usuario_id`,`reporte_id`),
CONSTRAINT `fk_calif_usuario`
FOREIGN KEY (`usuario_id`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_calif_reporte`
FOREIGN KEY (`reporte_id`) REFERENCES `reportes` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- ----------------------------------------
-- Datos de ejemplo
-- Contraseña de todos los usuarios demo: Admin123!
-- Hash bcrypt generado con password_hash('Admin123!', PASSWORD_DEFAULT)
-- ----------------------------------------
INSERT INTO `usuarios` (`nombre`, `email`, `contrasena`, `rol`, `perfil`) VALUES
('Administrador', 'admin@accesWaze.com', '$2y$12$RX6s8MZ9JNn/maVoucimheKDQ8SVWXWBdih1XIt9Qn6Z7qotle/zq', 'admin', 'general'),
('María García', 'maria@ejemplo.com', '$2y$12$RX6s8MZ9JNn/maVoucimheKDQ8SVWXWBdih1XIt9Qn6Z7qotle/zq', 'usuario', 'movilidad_reducida'),
('Carlos López', 'carlos@ejemplo.com', '$2y$12$RX6s8MZ9JNn/maVoucimheKDQ8SVWXWBdih1XIt9Qn6Z7qotle/zq', 'usuario', 'adulto_mayor');
INSERT INTO `reportes` (`titulo`, `descripcion`, `latitud`, `longitud`, `direccion`, `tipo`, `usuario_id`) VALUES
('Rampa en mal estado', 'La rampa del parque central está deteriorada y es peligrosa para sillas de ruedas.', 4.60970000, -74.08170000, 'Parque Central, Bogotá', 'falta_rampa', 2),
('Obstáculo en andén', 'Vehículo mal estacionado bloquea el paso peatonal por completo.', 4.61200000, -74.06800000, 'Carrera 7, Bogotá', 'obstaculo', 3),
('Andén roto', 'El andén está completamente destrozado, imposible transitar en silla de ruedas.', 4.60800000, -74.07500000, 'Calle 19, Bogotá', 'mal_estado_anden', 2),
('Semáforo sin sonido', 'El semáforo peatonal de esta esquina no emite señal sonora para personas con baja visión.', 4.61500000, -74.07200000, 'Calle 26 con Cra 13', 'semaforo', 2),
('Escalera sin rampa', 'Escalera de acceso al parque sin rampa alternativa ni señalización.', 4.60500000, -74.08500000, 'Parque El Virrey, Bogotá', 'escalera', 3);