我有一个包含1000部电影及其相应类型的CSV文件,大多数电影都有不止一个类型,作为规范化过程的一部分,我必须拆分类型单元,以便每个单元中只有一个类型。
下面的图片最好地解释了我正在谈论的和我想要实现的东西。
有没有一种有效的方法可以根据流派的数量复制movieID细胞,并将这些流派分割成这些细胞,而不是手动操作?
例如,movie1有3种类型:Drama,Romance,Thriller。我想要实现的是:3个"movie1“细胞和相应的类型:Drama,Romance,Thriller。


发布于 2021-03-29 20:53:18
您应该创建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);我已经添加了一个可以工作的小提琴
http://sqlfiddle.com/#!9/0dfd42/1
https://stackoverflow.com/questions/66854378
复制相似问题