· 5 years ago · Jun 21, 2020, 09:18 PM
1#CREACION DE BASE DE DATOS
2CREATE DATABASE IF NOT EXISTS diario_argentino;
3USE diario_argentino;
4
5#CREACION DE TABLAS
6CREATE TABLE tipo_calificacion
7(
8 id_tipo int unsigned NOT NULL auto_increment,
9 tipo varchar(20) NOT NULL,
10 PRIMARY KEY (id_tipo)
11);
12CREATE TABLE historial_informacion
13(
14 id_historial_informacion int unsigned NOT NULL auto_increment,
15 fecha_modificacion date,
16 hora_modificacion time,
17 alias varchar(20),
18 contrasenia varchar(10),
19 PRIMARY KEY (id_historial_informacion)
20);
21CREATE TABLE historial_de_noticias
22(
23 id_historial_noticias int unsigned NOT NULL auto_increment,
24 hora_modificacion time,
25 fecha_modificacion date,
26 observacion varchar(200),
27 PRIMARY KEY (id_historial_noticias)
28);
29CREATE TABLE historial_estados
30(
31 id_historial_estado int unsigned NOT NULL auto_increment,
32 hora_de_cambio time,
33 fecha_de_cambio date,
34 observacion varchar(200),
35 PRIMARY KEY (id_historial_estado)
36);
37CREATE TABLE tema
38(
39 id_tema int unsigned NOT NULL auto_increment,
40 tema varchar(40),
41 PRIMARY KEY (id_tema)
42);
43CREATE TABLE noticia
44(
45 id_noticia int unsigned NOT NULL auto_increment,
46 contenido mediumtext NOT NULL,
47 fecha date,
48 bajada varchar(200),
49 fecha_publicacion date NOT NULL,
50 hora_publicacion time,
51 nombre_autor varchar(20),
52 apellido_autor varchar(20),
53 titulo varchar(100),
54 id_tema int unsigned NOT NULL,
55 PRIMARY KEY (id_noticia),
56 FOREIGN KEY (id_tema) REFERENCES tema(id_tema)
57);
58CREATE TABLE calificacion
59(
60 fecha date NOT NULL,
61 hora time NOT NULL,
62 dni int NOT NULL,
63 id_tipo int unsigned,
64 id_noticia int unsigned NOT NULL,
65 # UNIQUE (name),
66 PRIMARY KEY (fecha, hora, dni),
67 FOREIGN KEY (id_tipo) REFERENCES tipo_calificacion(id_tipo)
68);
69
70CREATE TABLE usuario
71(
72 dni int unsigned NOT NULL,
73 nombre varchar(20),
74 apellido varchar(20),
75 alias varchar(20),
76 contrasenia varchar(10),
77 id_historial_informacion int unsigned,
78 PRIMARY KEY (dni),
79 FOREIGN KEY (id_historial_informacion) REFERENCES historial_informacion(id_historial_informacion)
80);
81CREATE TABLE usuario_lee_noticia
82(
83 dni int unsigned NOT NULL,
84 id_noticia int unsigned NOT NULL,
85 fecha_navegacion date,
86 hora_navegacion time,
87 PRIMARY KEY (dni, id_noticia),
88 FOREIGN KEY (dni) REFERENCES usuario(dni),
89 FOREIGN KEY (id_noticia) REFERENCES noticia(id_noticia)
90);
91CREATE TABLE comentario
92(
93 id_comentario int unsigned NOT NULL auto_increment,
94 texto varchar(500),
95 id_noticia int unsigned,
96 dni_usuario int unsigned,
97 id_comentario_padre int unsigned,
98 PRIMARY KEY (id_comentario),
99 FOREIGN KEY (id_noticia) REFERENCES noticia(id_noticia),
100 FOREIGN KEY (dni_usuario) REFERENCES usuario(dni),
101 FOREIGN KEY (id_comentario_padre) REFERENCES comentario(id_comentario)
102);
103CREATE TABLE estado
104(
105 id_estado int unsigned NOT NULL auto_increment,
106 estado varchar(20),
107 id_comentario int unsigned,
108 id_historial_estado int unsigned,
109 PRIMARY KEY (id_estado),
110 FOREIGN KEY (id_comentario) REFERENCES comentario(id_comentario),
111 FOREIGN KEY (id_historial_estado) REFERENCES historial_estados(id_historial_estado)
112);
113CREATE TABLE usuario_modifica_estado
114(
115 dni int unsigned NOT NULL,
116 id_estado int unsigned NOT NULL,
117 PRIMARY KEY (dni, id_estado),
118 FOREIGN KEY (dni) REFERENCES usuario(dni),
119 FOREIGN KEY (id_estado) REFERENCES estado(id_estado)
120);