Database Reference
In-Depth Information
movies
genres
*movie_id
title
genres[]
name
position
hat viele
und gehört
zu vielen
actors
*actor_id
name
Abbildung 6: Unser Film-Empfehlungssystem
Sie werden sich erinnern, dass wir am ersten Tag verschiedene Zusatzpakete
installiert haben. Heute werden wir sie alle nutzen. Hier noch einmal die
Liste der benötigten Pakete: tablefunc , dict _ xsyn , fuzzystrmatch , pg _ trgm
und cube .
Zuerst wollen wir die Datenbank aufbauen. Häufig baut man Indizes für
Fremdschlüssel auf, um „Reverse Lookups“ (z. B. für die Filme, in denen ein
Schauspieler mitgespielt hat) zu beschleunigen. Sie können auch ein UNIQUE -
Constraint für Join-Tabellen wie movies _ actors festlegen, um doppelte Join-
Werte zu vermeiden.
postgres/create_movies.sql
CREATE TABLE genres (
name text UNIQUE ,
position integer
);
CREATE TABLE movies (
movie _ id SERIAL PRIMARY KEY ,
title text ,
genre cube
);
CREATE TABLE actors (
actor _ id SERIAL PRIMARY KEY ,
name text
);
CREATE TABLE movies _ actors (
movie _ id integer REFERENCES movies NOT NULL,
actor _ id integer REFERENCES actors NOT NULL,
UNIQUE (movie _ id, actor _ id)
);
CREATE INDEX movies _ actors _ movie _ id ON movies _ actors (movie _ id);
 
Search WWH ::




Custom Search