Håller på att fixa till min filmdatabas (gammal skoluppgift) utifrån olika textfiler (genres.txt, movies.txt, directors.txt, times.txt osv).
Mitt problem är att göra så att en film kan ha flera olika genrer. Genres.txt innehåller titlar som inte finns med i movies.txt och ska inte vara med i databasen. Istället för att använda ett movieID så ska jag enligt uppgiften använda en primary key av title, year som unikt identifierar varje film. Har provat på lite olika sätt men kan inte få så att en film har flera genres..
SQL-kod:
Mitt problem är att göra så att en film kan ha flera olika genrer. Genres.txt innehåller titlar som inte finns med i movies.txt och ska inte vara med i databasen. Istället för att använda ett movieID så ska jag enligt uppgiften använda en primary key av title, year som unikt identifierar varje film. Har provat på lite olika sätt men kan inte få så att en film har flera genres..
SQL-kod:
Kod:
CREATE TABLE `tempGenres` (
`title` varchar(100) NOT NULL,
`genre` varchar(20) NOT NULL,
`year` INT NOT NULL
) ENGINE=InnoDB;
CREATE TABLE `movies` (
`title` varchar(100) NOT NULL,
`length` int NULL,
`year` INT NOT NULL,
PRIMARY KEY (title,year)
) ENGINE=InnoDB;
CREATE TABLE `genres` (
`genre` varchar(20) NOT NULL,
PRIMARY KEY (genre)
) ENGINE=InnoDB;
CREATE TABLE movie_genre
(
`genre` VARCHAR(20) NOT NULL,
`title` VARCHAR(100) NOT NULL,
`year` INT NOT NULL,
PRIMARY KEY (`genre`, `title`, `year`),
INDEX `fk_genres_has_movies_movies1_idx` (`title` ASC, `year` ASC),
INDEX `fk_genres_has_movies_genres1_idx` (`genre` ASC),
CONSTRAINT `fk_genres_has_movies_genres1`
FOREIGN KEY (`genre`)
REFERENCES `mdb`.`genres` (`genre`)
ON DELETE cascade
ON UPDATE cascade,
CONSTRAINT `fk_genres_has_movies_movies1`
FOREIGN KEY (`title` , `year`)
REFERENCES `mdb`.`movies` (`title` , `year`)
ON DELETE cascade
ON UPDATE cascade
) ENGINE INNODB;