· 8 years ago · Nov 17, 2017, 07:36 AM
1DROP DATABASE IF EXISTS agencia_viajes;
2
3CREATE DATABASE agencia_viajes CHARACTER SET utf8;
4
5USE agencia_viajes;
6
7CREATE TABLE agencia (
8 id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
9 direccion VARCHAR(128) NOT NULL,
10 telefono VARCHAR(9) NOT NULL
11);
12
13CREATE TABLE turista (
14 id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
15 nombre VARCHAR(50) NOT NULL,
16 apellido1 VARCHAR(50) NOT NULL,
17 apellido2 VARCHAR(50),
18 direccion VARCHAR(128) NOT NULL,
19 telefono VARCHAR(9) NOT NULL
20);
21
22CREATE TABLE contrata (
23 id_agencia INT UNSIGNED,
24 id_turista INT UNSIGNED,
25 PRIMARY KEY (id_agencia, id_turista),
26 FOREIGN KEY (id_agencia) REFERENCES agencia(id),
27 FOREIGN KEY (id_turista) REFERENCES turista(id)
28);
29
30CREATE TABLE hotel (
31 id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
32 nombre VARCHAR(50) NOT NULL,
33 direccion VARCHAR(128) NOT NULL,
34 ciudad VARCHAR(50) NOT NULL,
35 provincia VARCHAR(50) NOT NULL,
36 plazas INT UNSIGNED NOT NULL CHECK (plazas>0),
37 telefono VARCHAR(9) NOT NULL
38);
39
40
41CREATE TABLE reserva (
42 id_turista INT UNSIGNED,
43 id_hotel INT UNSIGNED,
44 fecha_entrada DATETIME NOT NULL,
45 fecha_salida DATETIME NOT NULL,
46 regimen ENUM('MP', 'PC') NOT NULL DEFAULT 'MP',
47 PRIMARY KEY (id_turista, id_hotel),
48 FOREIGN KEY (id_turista) REFERENCES turista(id),
49 FOREIGN KEY (id_hotel) REFERENCES hotel(id)
50);
51
52CREATE TABLE vuelo (
53 id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
54 fecha_hora DATETIME NOT NULL,
55 plazas_totales SMALLINT UNSIGNED NOT NULL,
56 plazas_turista SMALLINT UNSIGNED NOT NULL
57);
58
59CREATE TABLE toma (
60 id_turista INT UNSIGNED,
61 id_vuelo INT UNSIGNED,
62 clase ENUM('Turista', 'Primera') NOT NULL DEFAULT 'Turista',
63 PRIMARY KEY (id_turista, id_vuelo),
64 FOREIGN KEY (id_turista) REFERENCES turista(id),
65 FOREIGN KEY (id_vuelo) REFERENCES vuelo(id)
66);