-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschema.sql
More file actions
63 lines (55 loc) · 1.72 KB
/
Copy pathschema.sql
File metadata and controls
63 lines (55 loc) · 1.72 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
-- Crear base de datos
CREATE DATABASE reservas
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE reservas;
-- Tabla usuarios
CREATE TABLE usuarios (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
correo VARCHAR(150) NOT NULL UNIQUE,
contraseña VARCHAR(255) NOT NULL,
creado_en DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Tabla mesas
CREATE TABLE mesas (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(50) NOT NULL,
capacidad TINYINT NOT NULL CHECK (capacidad BETWEEN 1 AND 8),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Tabla horarios (horarios fijos compartidos)
CREATE TABLE horarios (
id INT AUTO_INCREMENT PRIMARY KEY,
dia_semana TINYINT NOT NULL, -- 0=Domingo, 1=Lunes...
hora_inicio TIME NOT NULL,
hora_fin TIME NOT NULL
);
-- Tabla reservas_mesas
CREATE TABLE reservas_mesas (
id INT AUTO_INCREMENT PRIMARY KEY,
usuario_id INT NOT NULL,
mesa_id INT NOT NULL,
horario_id INT NOT NULL,
fecha DATE NOT NULL,
cantidad_personas TINYINT NOT NULL CHECK (cantidad_personas BETWEEN 1 AND 8),
estado ENUM('pendiente', 'confirmada', 'cancelada') DEFAULT 'confirmada',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (usuario_id) REFERENCES usuarios(id),
FOREIGN KEY (mesa_id) REFERENCES mesas(id),
FOREIGN KEY (horario_id) REFERENCES horarios(id)
);
-- Insertar mesas de ejemplo
INSERT INTO mesas (nombre, capacidad) VALUES
('Mesa 1', 2),
('Mesa 2', 4),
('Mesa 3', 6),
('Mesa 4', 8);
-- Insertar horarios de ejemplo
INSERT INTO horarios (dia_semana, hora_inicio, hora_fin) VALUES
(1, '13:00', '14:00'),
(1, '14:00', '15:00'),
(1, '20:00', '22:00'),
(2, '13:00', '14:00'),
(2, '14:00', '15:00'),
(2, '20:00', '22:00');