· 4 years ago · Jun 02, 2021, 10:26 AM
1CREATE DATABASE IF NOT EXISTS inquilino_perfecto;
2USE inquilino_perfecto;
3
4CREATE TABLE usuarios (
5 id_usuario BINARY(60) NOT NULL,
6 password VARCHAR(36) NOT NULL,
7 email VARCHAR(256) NOT NULL,
8 tipo ENUM('INQUILINO','CASERO', 'INQUILINO_CASERO') NOT NULL,
9
10 CONSTRAINT UI_email UNIQUE INDEX (email),
11 CONSTRAINT PK_usuarios PRIMARY KEY(id_usuario)
12);
13
14--UNIQUE INDEX nonclustered by default
15
16CREATE TABLE inmuebles (
17 id_inmueble BINARY(60) NOT NULL,
18 usr_casero BINARY(60) NOT NULL,
19
20 CONSTRAINT FK_inmuebles_usr_casero FOREIGN KEY (usr_casero) REFERENCES usuarios(id_usuario),
21 CONSTRAINT PK_imnuebles PRIMARY KEY(id_inmueble, usr_casero)
22);
23--indexed by default
24
25CREATE TABLE anuncia(
26 id_anuncio INT UNSIGNED NOT NULL AUTO_INCREMENT,
27 usr_casero BINARY(60) NOT NULL,
28 inmueble BINARY(60) NOT NULL,
29 fecha_inicio DATETIME NOT NULL,
30
31 CONSTRAINT FK_anuncia_inmuebles FOREIGN KEY (inmueble) REFERENCES inmuebles(id_inmueble),
32 CONSTRAINT FK_anuncia_usr_casero FOREIGN KEY (usr_casero) REFERENCES inmuebles(usr_casero),
33 CONSTRAINT PK_anuncia PRIMARY KEY (id_anuncio)
34);
35
36CREATE TABLE alquileres(
37 id_alquiler INT UNSIGNED NOT NULL AUTO_INCREMENT,
38 usr_casero BINARY(60) NOT NULL,
39 usr_inquilino BINARY(60) NOT NULL,
40 inmueble BINARY(60) NOT NULL,
41 fecha_inicio DATETIME NOT NULL,
42 fecha_fin DATETIME NOT NULL,
43
44 CONSTRAINT FK_alquiler_inmuebles FOREIGN KEY (inmueble) REFERENCES inmuebles(id_inmueble),
45 CONSTRAINT FK_alquiler_usr_casero FOREIGN KEY (usr_casero) REFERENCES inmuebles(usr_casero),
46 CONSTRAINT FK_alquiler_usr_inquilino FOREIGN KEY (usr_inquilino) REFERENCES usuarios(id_usuario),
47 CONSTRAINT PK_alquileres PRIMARY KEY(id_alquiler)
48);
49
50CREATE TABLE resena (
51 id_resena INT UNSIGNED NOT NULL AUTO_INCREMENT,
52 inmueble BINARY(60) NOT NULL,
53 usr_casero BINARY(60) NOT NULL,
54 usr_inquilino BINARY(60) NOT NULL,
55 contenido TEXT,
56
57 CONSTRAINT FK_resena_inmueble FOREIGN KEY (inmueble) REFERENCES inmuebles(id_inmueble),
58 CONSTRAINT FK_resena_usr_casero FOREIGN KEY (usr_casero) REFERENCES inmuebles(usr_casero),
59 CONSTRAINT FK_resena_usr_usuario FOREIGN KEY (usr_inquilino) REFERENCES usuarios(id_usuario),
60 CONSTRAINT PK_resena PRIMARY KEY(id_resena)
61);