· 2 years ago · Nov 05, 2022, 09:30 PM
1CREATE DATABASE IF NOT EXISTS comedores_db
2CHARACTER SET 'utf8mb4';
3
4USE comedores_db;
5
6CREATE TABLE estados_necesidad(
7 id int not null auto_increment,
8 descripcion varchar(50) not null,
9 PRIMARY KEY (id)
10);
11CREATE TABLE estados_reporte(
12 id int not null auto_increment,
13 descripcion varchar(50) not null,
14 PRIMARY KEY (id)
15);
16CREATE TABLE tipos_necesidad(
17 id int not null auto_increment,
18 descripcion varchar(50) not null,
19 PRIMARY KEY (id)
20);
21CREATE TABLE tipos_reporte(
22 id int not null auto_increment,
23 descripcion varchar(50) not null,
24 PRIMARY KEY (id)
25);
26CREATE TABLE tipos_usuario(
27 id int not null auto_increment,
28 descripcion varchar(50) not null,
29 PRIMARY KEY (id)
30);
31CREATE TABLE usuarios(
32 id bigint not null auto_increment,
33 email varchar(50) not null unique,
34 password varchar(50) not null,
35 tipo_id int not null,
36 nombre varchar(50) not null,
37 apellido varchar(50) not null,
38 dni varchar(10) not null unique,
39 direccion varchar(50) null,
40 localidad varchar(50) null,
41 provincia varchar(50) null,
42 telefono varchar(20) null,
43 estado bit not null default true,
44 PRIMARY KEY (id),
45 FOREIGN KEY (tipo_id) REFERENCES tipos_usuario(id)
46);
47CREATE TABLE reportes(
48 id bigint not null auto_increment,
49 tipo_id int not null,
50 estado_id int not null,
51 fecha_alta date not null,
52 descripcion varchar(200) not null,
53 respuesta varchar(200) null,
54 reportado_id bigint null,
55 PRIMARY KEY (id),
56 FOREIGN KEY (tipo_id) REFERENCES tipos_reporte(id),
57 FOREIGN KEY (estado_id) REFERENCES estados_reporte(id)
58);
59CREATE TABLE usuarios_x_reportes(
60 usuario_id bigint not null,
61 reporte_id bigint not null,
62 PRIMARY KEY (usuario_id,reporte_id),
63 FOREIGN KEY (usuario_id) REFERENCES usuarios(id),
64 FOREIGN KEY (reporte_id) REFERENCES reportes(id)
65);
66CREATE TABLE necesidades(
67 id bigint not null auto_increment,
68 tipo_id int not null,
69 estado_id int not null,
70 descripcion varchar(140) not null,
71 prioridad tinyint unsigned not null check (prioridad > 0 and prioridad < 6),
72 PRIMARY KEY (id),
73 FOREIGN KEY (tipo_id) REFERENCES tipos_necesidad(id),
74 FOREIGN KEY (estado_id) REFERENCES estados_necesidad(id)
75);
76CREATE TABLE estados_comedor(
77 id int not null auto_increment,
78 descripcion varchar(50) not null,
79 PRIMARY KEY (id)
80);
81CREATE TABLE comedores(
82 id bigint not null auto_increment,
83 usuario_id bigint not null,
84 renacom bigint not null,
85 nombre varchar(50) not null,
86 direccion varchar(50) not null,
87 localidad varchar(50) not null,
88 provincia varchar(50) not null,
89 telefono varchar(20) not null,
90 nombre_responsable varchar(50) not null,
91 apellido_responsable varchar(50) not null,
92 estado_id int not null,
93 PRIMARY KEY (id),
94 FOREIGN KEY (usuario_id) REFERENCES usuarios(id),
95 FOREIGN KEY (estado_id) REFERENCES estados_comedor(id)
96);
97CREATE TABLE solicitudes(
98 id bigint not null auto_increment,
99 comedor_id bigint not null,
100 fecha_alta date not null,
101 estado bit not null default false,
102 supervisor_id bigint null,
103 PRIMARY KEY (id),
104 FOREIGN KEY (supervisor_id) REFERENCES usuarios(id),
105 FOREIGN KEY (comedor_id) REFERENCES comedores(id)
106);
107CREATE TABLE comedores_x_necesidades(
108 comedor_id bigint not null,
109 necesidad_id bigint not null,
110 PRIMARY KEY (comedor_id,necesidad_id),
111 FOREIGN KEY (comedor_id) REFERENCES comedores(id),
112 FOREIGN KEY (necesidad_id) REFERENCES necesidades(id)
113);
114
115insert into estados_necesidad (descripcion) values ("pendiente");
116insert into estados_necesidad (descripcion) values ("satisfecha");
117
118insert into tipos_necesidad (descripcion) values ("alimentos");
119insert into tipos_necesidad (descripcion) values ("medicinas");
120insert into tipos_necesidad (descripcion) values ("herramientas");
121insert into tipos_necesidad (descripcion) values ("voluntarios");
122insert into tipos_necesidad (descripcion) values ("utiles escolares");
123insert into tipos_necesidad (descripcion) values ("utensillos");
124
125insert into estados_reporte (descripcion) values ("en proceso");
126insert into estados_reporte (descripcion) values ("completado");
127
128insert into tipos_reporte (descripcion) values ("aplicacion");
129insert into tipos_reporte (descripcion) values ("usuario");
130insert into tipos_reporte (descripcion) values ("publicacion");
131
132insert into tipos_usuario (descripcion) values ("usuario final");
133insert into tipos_usuario (descripcion) values ("administrador de comedor");
134insert into tipos_usuario (descripcion) values ("supervisor");
135
136insert into estados_comedor (descripcion) values ("pendiente");
137insert into estados_comedor (descripcion) values ("habilitado");
138
139/*USUARIOS SUPERVISOR*/
140insert into usuarios(email, password,tipo_id,nombre,apellido,dni)
141values('matiledesma@gmail.com', 1234, 3,'matias','ledesma', '11222333');
142insert into usuarios(email, password,tipo_id,nombre,apellido,dni)
143values('leogerez@gmail.com', 1234, 3,'leonel','gerez', '22333444');
144insert into usuarios(email, password,tipo_id,nombre,apellido,dni)
145values('alexrodriguez@gmail.com', 1234, 3,'alexis','rodriguez', '33444555');
146insert into usuarios(email, password,tipo_id,nombre,apellido,dni)
147values('aleolivera@hotmail.com', 1234, 3,'alejandro','olivera', '44555666');
148
149/*USUARIOS FINALES*/
150insert into usuarios(nombre, apellido,email,password,tipo_id,dni,direccion,localidad,provincia,telefono,estado)
151values('ramon', 'valdez', 'donRamon@hotmail.com','1234','1', '55666777','vecindad 1980', 'virreyes', 'buenos aires','1511112222',1);
152insert into usuarios(nombre, apellido,email,password,tipo_id,dni,direccion,localidad,provincia,telefono,estado)
153values('angela', 'martin', 'angela@gmail.com','1234','1', '77888999','dunder mifflin 111', 'general pacheco', 'buenos aires','1511113333',1);
154
155/*USUARIOS ADMINSTRADORES DE COMEDOR*/
156insert into usuarios(nombre, apellido,email,password,tipo_id,dni,direccion,localidad,provincia,telefono,estado)
157values('cosme', 'fulanito', 'cosme@hotmail.com','1234','2', '66777888','calle falsa 123', 'virreyes', 'buenos aires','1522223333',1);
158insert into usuarios(nombre, apellido,email,password,tipo_id,dni,direccion,localidad,provincia,telefono,estado)
159values('pamela', 'beesley', 'pam@gmail.com','1234','2', '88999000','dunder mifflin 999', 'general pacheco', 'buenos aires','1522224444',1);
160insert into usuarios(nombre, apellido,email,password,tipo_id,dni,direccion,localidad,provincia,telefono,estado)
161values('rogelio', 'aguas', 'rogelio@gmail.com','1234','2', '11333444','paredes 3344', 'virreyes', 'buenos aires','1533333333',1);
162insert into usuarios(nombre, apellido,email,password,tipo_id,dni,direccion,localidad,provincia,telefono,estado)
163values('roberto', 'plant', 'roberto@gmail.com','1234','2', '11444333','zepelin 33', 'general pacheco', 'buenos aires','1544443333',1);
164
165/*COMEDORES*/
166insert into comedores(usuario_id, renacom,nombre,direccion,localidad,provincia,telefono, nombre_responsable,apellido_responsable,estado_id)
167values(7, 11112222, 'comedor cosme','libertador 2303','virreyes', 'buenos aires','1511223344', 'cosme', 'fulanito',2);
168insert into comedores(usuario_id, renacom,nombre,direccion,localidad,provincia,telefono, nombre_responsable,apellido_responsable,estado_id)
169values(8, 22223333, 'comedor de pamelita','hipolito yrigoyen 2303','general pacheco', 'buenos aires','1522334455', 'pamela', 'beesley',2);
170insert into comedores(usuario_id, renacom,nombre,direccion,localidad,provincia,telefono, nombre_responsable,apellido_responsable,estado_id)
171values(9, 33224455, 'lo de rogelio','paredes 3203','virreyes', 'buenos aires','1533333333', 'rogelio', 'aguas',1);
172insert into comedores(usuario_id, renacom,nombre,direccion,localidad,provincia,telefono, nombre_responsable,apellido_responsable,estado_id)
173values(10, 91827364, 'lo de robert','zepelin 44','general pacheco', 'buenos aires','1544443333', 'roberto', 'plant',1);
174
175/*SOLICITUDES*/
176insert into solicitudes(comedor_id, fecha_alta,estado,supervisor_id)
177values(1,'2018-11-04',1,1);
178insert into solicitudes(comedor_id, fecha_alta,estado,supervisor_id)
179values(2,'2019-09-12',1,1);
180insert into solicitudes(comedor_id, fecha_alta,estado)
181values(3,'2020-07-07',0);
182insert into solicitudes(comedor_id, fecha_alta,estado)
183values(4,'2021-06-24',0);
184
185/*NECESIDADES*/
186insert into necesidades(tipo_id, estado_id,descripcion,prioridad)
187values(1,1,'necesitamos arroz con mas de 2 meses de vencimiento',3);
188insert into necesidades(tipo_id, estado_id,descripcion,prioridad)
189values(1,1,'necesitamos alimento enlatado de cualquier tipo',3);
190insert into necesidades(tipo_id, estado_id,descripcion,prioridad)
191values(3,1,'necesitamos clavos martillo para repara las alacenas',4);
192insert into necesidades(tipo_id, estado_id,descripcion,prioridad)
193values(2,1,'necesitamos aspirinas o aspirinetas',4);
194insert into necesidades(tipo_id, estado_id,descripcion,prioridad)
195values(4,1,'necesitamos voluntarios para hacer reparaciones',4);
196insert into necesidades(tipo_id, estado_id,descripcion,prioridad)
197values(5,1,'necesitamos lapices, gomas y cartucheras para el año escolar',4);
198insert into necesidades(tipo_id, estado_id,descripcion,prioridad)
199values(6,1,'necesitamos platos y vasos de plastico para las meriendas',2);
200
201insert into comedores_x_necesidades(comedor_id, necesidad_id)
202values(1,1);
203insert into comedores_x_necesidades(comedor_id, necesidad_id)
204values(1,2);
205insert into comedores_x_necesidades(comedor_id, necesidad_id)
206values(1,3);
207insert into comedores_x_necesidades(comedor_id, necesidad_id)
208values(2,4);
209insert into comedores_x_necesidades(comedor_id, necesidad_id)
210values(2,5);
211insert into comedores_x_necesidades(comedor_id, necesidad_id)
212values(2,6);
213