· 4 years ago · Jun 02, 2021, 09:58 AM
1CRETATE DATABASE IF NOT EXISTS inquilino-perfecto;
2USE inquilino-perfecto;
3
4CREATE TABLE usuarios (
5 id_usuario BINARY(60) NOT NULL UNSIGNED,
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 --nonclustered by default
12 CONSTRAINT PK_usuarios PRIMARY KEY(id_usuario)
13);
14
15CREATE TABLE inmuebles (
16 id_inmueble BINARY(60) NOT NULL UNSIGNED,
17 usr_casero BINARY(60) NOT NULL UNSIGNED,
18
19 CONSTRAINT FK_inmuebles_usr_casero FOREIGN KEY (usuarios) REFERENCES usuarios(id_usuario),
20 --indexed bu default
21 CONSTRAINT PK_imnuebles PRIMARY KEY(id_inmueble, usr_casero)
22);
23
24CREATE TABLE anuncia(
25 id_anuncio INT NOT NULL AUTO_INCREMENT,
26 usr_casero BINARY(60) NOT NULL UNSIGNED,
27 inmueble BINARY(60) NOT NULL UNSIGNED,
28 fecha_inicio DATETIME NOT NULL CONSTRAINT DF_anuncia_fecha_ini DEFAULT GETADATE(),
29
30 CONSTRAINT FK_anuncia_inmuebles FOREIGN KEY (inmueble) REFERENCES inmuebles(id_inmueble),
31 CONSTRAINT FK_anuncia_usr_casero FOREIGN KEY (usr_casero) REFERENCES inmuebles(usr_casero),
32 CONSTRAINT PK_anuncia PRIMARY KEY (id_anuncio)
33);
34
35CREATE TABLE alquileres(
36 id_alquiler INT NOT NULL UNSIGNED AUTO_INCREMENT,
37 usr_casero BINARY(60) NOT NULL UNSIGNED,
38 usr_inquilino BINARY(60) NOT NULL UNSIGNED,
39 inmueble BINARY(60) NOT NULL UNSIGNED,
40 fecha_inicio DATETIME NOT NULL CONSTRAINT DF_alquileres_fecha_ini DEFAULT GETADATE(),
41 fecha_fin DATETIME NOT NULL CONSTRAINT DF_anuncia_fecha_ini DEFAULT GETADATE(),
42
43 CONSTRAINT FK_alquiler_inmuebles FOREIGN KEY (inmueble) REFERENCES inmuebles(id_inmueble),
44 CONSTRAINT FK_alquiler_usr_casero FOREIGN KEY (usr_casero) REFERENCES inmuebles(usr_casero),
45 CONSTRAINT FK_alquiler_usr_inquilino FOREIGN KEY (usr_inquilino) REFERENCES usuarios(id_usuario),
46 CONSTRAINT PK_alquileres PRIMARY KEY(id_alquiler)
47);
48
49CREATE TABLE resena (
50 id_resena INT NOT NULL UNSIGNED AUTO_INCREMENT,
51 inmueble BINARY(60) NOT NULL UNSIGNED,
52 usr_casero BINARY(60) NOT NULL UNSIGNED,
53 usr_inquilino BINARY(60) NOT NULL UNSIGNED,
54 contenido TEXT,
55
56 CONSTRAINT FK_resena_inmueble FOREIGN KEY (inmueble) REFERENCES inmuebles(id_inmueble),
57 CONSTRAINT FK_resena_usr_casero FOREIGN KEY (usr_casero) REFERENCES inmuebles(usr_casero),
58 CONSTRAINT FK_resena_usr_usuario FOREIGN KEY (usr_inquilino) REFERENCES usuarios(usr_inquilino),
59 CONSTRAINT PK_resena PRIMARY KEY(id_resena)
60);