Skip to content

Commit becdd2b

Browse files
committed
director normalized
1 parent 3895877 commit becdd2b

File tree

2 files changed

+195
-147
lines changed

2 files changed

+195
-147
lines changed

videoclub.sql

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ create table pelicula (
4444
id serial primary key,
4545
titulo varchar(80) not null,
4646
id_genero integer not null,
47-
director varchar(80) not null,
47+
id_director integer not null,
4848
sinopsis text
4949
);
5050

@@ -53,6 +53,11 @@ create table genero (
5353
genero varchar(50) not null
5454
);
5555

56+
create table director (
57+
id serial primary key,
58+
nombre varchar(80) not null
59+
);
60+
5661
alter table direccion
5762
add constraint direccion_socio_fk
5863
foreign key (num_socio)
@@ -78,6 +83,11 @@ add constraint pelicula_genero_fk
7883
foreign key (id_genero)
7984
references genero (id);
8085

86+
alter table pelicula
87+
add constraint pelicula_director_fk
88+
foreign key (id_director)
89+
references director (id);
90+
8191
-- Inicio la inserción de datos en una tabla auxiliar:
8292
CREATE TABLE tmp_videoclub (
8393
id_copia int4 NULL,
@@ -639,10 +649,16 @@ select distinct genero from tmp_videoclub;
639649

640650
create unique index genero_sin_repetir on genero (lower(genero));
641651

642-
insert into pelicula (titulo, id_genero, director, sinopsis)
643-
select distinct titulo, g.id, director, sinopsis
652+
insert into director (nombre)
653+
select distinct director from tmp_videoclub;
654+
655+
create unique index director_sin_repetir on director (lower(nombre));
656+
657+
insert into pelicula (titulo, id_genero, id_director, sinopsis)
658+
select distinct titulo, g.id, d.id, t.sinopsis
644659
from tmp_videoclub t
645-
inner join genero g on g.genero = t.genero;
660+
inner join genero g on g.genero = t.genero
661+
inner join director d on d.nombre = t.director;
646662

647663
create unique index titulo_sin_repetir on pelicula (lower(titulo));
648664

@@ -666,8 +682,3 @@ inner join pelicula on pelicula.id = copia.id_pelicula where no_disp.id is null
666682

667683

668684

669-
670-
671-
672-
673-

0 commit comments

Comments
 (0)