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