我有一个包含 1000 部电影及其相应类型的 CSV 文件,大多数电影有不止一种类型,作为规范化过程的一部分,我必须拆分类型单元格,以便每个单元格中只有一种类型。>
下图最能说明我在说什么以及我想要实现的目标。
是否有一种有效的方法可以根据流派的数量复制 movieID
单元格并将流派拆分为这些单元格,而不是手动执行此操作?
例如,movie1 有 3 个流派:Drama,Romance,Thriller
。我想要实现的是:“movie1”的3个单元格和相应的流派:Drama
、Romance
、Thriller
。
答案 0 :(得分:0)
您应该创建 3 个表。一种用于电影,一种用于类型,一种用于电影和类型之间的查找。
CREATE TABLE movies
id INT PRIMARY KEY,
name VARCHAR(100),
... whatever else you need ...;
CREATE TABLE genres
id INT PRIMARY KEY,
name VARCHAR(100),
... whatever else you need ...;
CREATE TABLE movie_genre
movie_id INT,
genre_id INT;
对于您的示例,表格将包含:
INSERT INTO movies (id, name) VALUES (1, 'movie1');
INSERT INTO genres(id, name) VALUS (1, 'Drama'),(2, 'Romance'),(3, 'Thriller');
INSERT INTO movie_genre (movie_id, genre_id) VALUES (1, 1),(1,2),(1,3);
我添加了一个工作小提琴