· 5 years ago · Jun 22, 2020, 01:14 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 autor
44(
45 id_autor int unsigned NOT NULL auto_increment,
46 nombre varchar(20) NOT NULL,
47 apellido varchar(20) NOT NULL,
48 PRIMARY KEY (id_autor)
49);
50CREATE TABLE noticia
51(
52 id_noticia int unsigned NOT NULL auto_increment,
53 contenido mediumtext NOT NULL,
54 fecha date,
55 bajada varchar(200),
56 fecha_publicacion date NOT NULL,
57 hora_publicacion time,
58 titulo varchar(100),
59 id_tema int unsigned NOT NULL,
60 id_autor int unsigned NOT NULL,
61 PRIMARY KEY (id_noticia),
62 FOREIGN KEY (id_autor) REFERENCES autor(id_autor),
63 FOREIGN KEY (id_tema) REFERENCES tema(id_tema)
64);
65
66CREATE TABLE calificacion
67(
68 fecha date NOT NULL,
69 hora time NOT NULL,
70 dni int NOT NULL,
71 id_tipo int unsigned,
72 id_noticia int unsigned NOT NULL,
73 # UNIQUE (name),
74 PRIMARY KEY (fecha, hora, dni),
75 FOREIGN KEY (id_tipo) REFERENCES tipo_calificacion(id_tipo)
76);
77
78CREATE TABLE usuario
79(
80 dni int unsigned NOT NULL,
81 nombre varchar(20),
82 apellido varchar(20),
83 alias varchar(20),
84 contrasenia varchar(10),
85 id_historial_informacion int unsigned,
86 PRIMARY KEY (dni),
87 FOREIGN KEY (id_historial_informacion) REFERENCES historial_informacion(id_historial_informacion)
88);
89CREATE TABLE usuario_lee_noticia
90(
91 dni int unsigned NOT NULL,
92 id_noticia int unsigned NOT NULL,
93 fecha_navegacion date,
94 hora_navegacion time,
95 PRIMARY KEY (dni, id_noticia),
96 FOREIGN KEY (dni) REFERENCES usuario(dni),
97 FOREIGN KEY (id_noticia) REFERENCES noticia(id_noticia)
98);
99CREATE TABLE comentario
100(
101 id_comentario int unsigned NOT NULL auto_increment,
102 texto varchar(500),
103 id_noticia int unsigned,
104 dni_usuario int unsigned,
105 id_comentario_padre int unsigned,
106 PRIMARY KEY (id_comentario),
107 FOREIGN KEY (id_noticia) REFERENCES noticia(id_noticia),
108 FOREIGN KEY (dni_usuario) REFERENCES usuario(dni),
109 FOREIGN KEY (id_comentario_padre) REFERENCES comentario(id_comentario)
110);
111CREATE TABLE estado
112(
113 id_estado int unsigned NOT NULL auto_increment,
114 estado varchar(20),
115 id_comentario int unsigned,
116 id_historial_estado int unsigned,
117 PRIMARY KEY (id_estado),
118 FOREIGN KEY (id_comentario) REFERENCES comentario(id_comentario),
119 FOREIGN KEY (id_historial_estado) REFERENCES historial_estados(id_historial_estado)
120);
121CREATE TABLE usuario_modifica_estado
122(
123 dni int unsigned NOT NULL,
124 id_estado int unsigned NOT NULL,
125 PRIMARY KEY (dni, id_estado),
126 FOREIGN KEY (dni) REFERENCES usuario(dni),
127 FOREIGN KEY (id_estado) REFERENCES estado(id_estado)
128
129 );