· 5 years ago · May 15, 2020, 04:08 AM
1-- -----------------------------------------------------
2-- Table editoriales
3-- -----------------------------------------------------
4CREATE TABLE editoriales (
5 idEdt INT NOT NULL,
6 nombreEdt VARCHAR(100) NULL,
7 pais VARCHAR(100) NULL,
8 web VARCHAR(100) NULL,
9 PRIMARY KEY (idEdt));
10
11
12-- -----------------------------------------------------
13-- Tabla areas_de_conocimiento
14-- -----------------------------------------------------
15CREATE TABLE areas_de_conocimiento (
16 codArea VARCHAR(15) NOT NULL,
17 nombreArea VARCHAR(250) NULL,
18 codAreaPadre VARCHAR(15) NULL,
19 areas_de_conocimiento_codArea VARCHAR(15) NOT NULL,
20 PRIMARY KEY (codArea),
21 INDEX fk_areas_de_conocimiento_areas_de_conocimiento1_idx (areas_de_conocimiento_codArea ASC, codAreaPadre ASC) VISIBLE,
22 CONSTRAINT fk_areas_de_conocimiento_areas_de_conocimiento1
23 FOREIGN KEY (areas_de_conocimiento_codArea , codAreaPadre)
24 REFERENCES areas_de_conocimiento (codArea , codArea)
25 ON DELETE NO ACTION
26 ON UPDATE NO ACTION));
27-- -----------------------------------------------------
28-- Tabla libros
29-- -----------------------------------------------------
30CREATE TABLE libros (
31 idlibro INT NOT NULL,
32 isbn VARCHAR(15) NULL,
33 titulo VARCHAR(500) NULL,
34 sinopsis VARCHAR(2500) NULL,
35 numPaginas INT NULL COMMENT 'Debe ser mayor a 50 y menor a 2000',
36 idioma CHAR(2) NULL,
37 codArea VARCHAR(15) NULL,
38 anio INT(4) NULL COMMENT 'Debe ser mayor a 1800',
39 nroEdicion INT(2) NULL COMMENT 'Debe ser mayor a 0',
40 idEdt INT NULL,
41 imgPortada BLOB NULL,
42 editoriales_idEdt INT NOT NULL,
43 areas_de_conocimiento_codArea VARCHAR(15) NOT NULL,
44 PRIMARY KEY (idlibro, editoriales_idEdt, areas_de_conocimiento_codArea),
45 INDEX fk_libros_editoriales_idx (editoriales_idEdt ASC) VISIBLE,
46 INDEX fk_libros_areas_de_conocimiento1_idx (areas_de_conocimiento_codArea ASC) VISIBLE,
47 UNIQUE INDEX isbn_UNIQUE (isbn ASC) VISIBLE,
48 CONSTRAINT fk_libros_editoriales
49 FOREIGN KEY (editoriales_idEdt)
50 REFERENCES editoriales (idEdt)
51 ON DELETE NO ACTION
52 ON UPDATE NO ACTION,
53 CONSTRAINT fk_libros_areas_de_conocimiento1
54 FOREIGN KEY (areas_de_conocimiento_codArea)
55 REFERENCES areas_de_conocimiento (codArea)
56 ON DELETE NO ACTION
57 ON UPDATE NO ACTION);
58
59-- -----------------------------------------------------
60-- Table ejemplares
61-- -----------------------------------------------------
62CREATE TABLE ejemplares (
63 idejemplar INT NOT NULL,
64 idLibro INT NOT NULL,
65 ubicacion VARCHAR(40) NULL,
66 status CHAR(1) NOT NULL COMMENT 'Tres posibles valores:\n\"D\" (Disponible)\n\"P\" (Prestado)\n\"B\" (Dado de baja)',
67 libros_idlibro INT NOT NULL,
68 libros_editoriales_idEdt INT NOT NULL,
69 PRIMARY KEY (idejemplar, libros_idlibro, libros_editoriales_idEdt),
70 INDEX fk_ejemplares_libros1_idx (libros_idlibro ASC, libros_editoriales_idEdt ASC, idLibro ASC) VISIBLE,
71 CONSTRAINT fk_ejemplares_libros1
72 FOREIGN KEY (libros_idlibro , libros_editoriales_idEdt , idLibro)
73 REFERENCES libros (idlibro , editoriales_idEdt , idlibro)
74 ON DELETE NO ACTION
75 ON UPDATE NO ACTION);
76
77-- -----------------------------------------------------
78-- Tabla usuarios
79-- -----------------------------------------------------
80CREATE TABLE IF NOT EXISTS usuarios (
81 cedula VARCHAR(15) NOT NULL,
82 apellidos VARCHAR(2) NULL,
83 nombres VARCHAR(50) NULL,
84 direccion VARCHAR(250) NULL,
85 telefono1 VARCHAR(20) NULL,
86 telefono2 VARCHAR(20) NULL,
87 telefono3 VARCHAR(20) NULL,
88 email VARCHAR(60) NULL COMMENT 'Debe necesariamente incluir el carácter especial \"@\" y debe incluir al menos\ndos caracteres antes y después del arroba',
89 PRIMARY KEY (cedula),
90 UNIQUE INDEX email_UNIQUE (email ASC) VISIBLE);
91
92-- -----------------------------------------------------
93-- Table prestamos
94-- -----------------------------------------------------
95CREATE TABLE prestamos (
96 idPrestamo INT NOT NULL,
97 idEjemplar INT NOT NULL,
98 cedula VARCHAR(15) NOT NULL,
99 fechaPrestamo DATE NOT NULL,
100 fechaVencimiento DATE NOT NULL,
101 fechaDevolucion DATE NULL COMMENT 'No debe ser inferior a la fecha de préstamo',
102 observacon VARCHAR(2000) NULL,
103 usuarios_cedula VARCHAR(15) NOT NULL,
104 ejemplares_idejemplar INT NOT NULL,
105 PRIMARY KEY (idPrestamo, usuarios_cedula, ejemplares_idejemplar),
106 INDEX fk_prestamos_usuarios1_idx (usuarios_cedula ASC, cedula ASC) VISIBLE,
107 INDEX fk_prestamos_ejemplares1_idx (ejemplares_idejemplar ASC, idEjemplar ASC) VISIBLE,
108 CONSTRAINT fk_prestamos_usuarios1
109 FOREIGN KEY (usuarios_cedula , cedula)
110 REFERENCES usuarios (cedula , cedula)
111 ON DELETE NO ACTION
112 ON UPDATE NO ACTION,
113 CONSTRAINT fk_prestamos_ejemplares1
114 FOREIGN KEY (ejemplares_idejemplar , idEjemplar)
115 REFERENCES ejemplares (idejemplar , idejemplar)
116 ON DELETE NO ACTION
117 ON UPDATE NO ACTION);
118
119-- -----------------------------------------------------
120-- Tabla autores
121-- -----------------------------------------------------
122CREATE TABLE autores (
123 idAutor INT NOT NULL,
124 nombreAutor VARCHAR(100) NOT NULL,
125 pais CHAR(2) NOT NULL,
126 foto BLOB NULL,
127 bio VARCHAR(2500) NULL,
128 numLibros INT NOT NULL COMMENT 'No puede ser negativo',
129 PRIMARY KEY (idAutor));
130
131-- -----------------------------------------------------
132-- Tabla autorias
133-- -----------------------------------------------------
134CREATE TABLE autorias (
135 idLibro INT NOT NULL,
136 idAutor INT NOT NULL,
137 orden SMALLINT(2) NOT NULL,
138 autores_idAutor INT NOT NULL,
139 libros_idlibro INT NOT NULL,
140 libros_editoriales_idEdt INT NOT NULL,
141 libros_areas_de_conocimiento_codArea VARCHAR(15) NOT NULL,
142 PRIMARY KEY (idLibro, autores_idAutor, libros_idlibro, libros_editoriales_idEdt, libros_areas_de_conocimiento_codArea),
143 INDEX fk_autorias_libros1_idx (libros_idlibro ASC, libros_editoriales_idEdt ASC, libros_areas_de_conocimiento_codArea ASC, idLibro ASC) VISIBLE,
144 INDEX fk_autorias_autores1_idx (autores_idAutor ASC, idAutor ASC) VISIBLE,
145 CONSTRAINT fk_autorias_autores1
146 FOREIGN KEY (autores_idAutor , idAutor)
147 REFERENCES autores (idAutor , idAutor)
148 ON DELETE NO ACTION
149 ON UPDATE NO ACTION,
150 CONSTRAINT fk_autorias_libros1
151 FOREIGN KEY (libros_idlibro , libros_editoriales_idEdt , libros_areas_de_conocimiento_codArea , idLibro)
152 REFERENCES libros (idlibro , editoriales_idEdt , areas_de_conocimiento_codArea , idlibro)
153 ON DELETE NO ACTION
154 ON UPDATE NO ACTION);