我正准备在我创建的电影数据库中填充几个表。该Movies
表已经创建。它看起来像这样:
movieid INT NOT NULL PRIMARY KEY
title VARCHAR(50)
link VARCHAR(100)
release_date VARCHAR(10)
或许应该注意的是,我正在使用MySQL-python
并Scrapy
在MySQL
数据库中填充这些数据,但也许这并不重要。
我创建了三个尚未填充的附加表Producers
:Actors
和Directors
。这些中的每一个看起来都像另一个,因为存在id
,name
和movie title
。所以Actors
看起来像:
actorid INT NOT NULL PRIMARY KEY
actor VARCHAR(40)
title VARCHAR(50) <<<<------ This is the movie title from the Movies tables
现在,我想创建一个名为的表Movie To Actor
,其中包含表中movieid
的Movie
表和表中actorid
的表,并且Actor
表中不存在该title
列Actors
。
我认为有两种方法可以做到这一点:
第一种方式:
将所有数据放入Actors
表中,title
充当 aforeign key
然后创建Movie To Actor
表,添加适当的ids
wheremovies.title
等于Actors.title
然后title
从 中删除列Actors
。
第二种方式:
在我填充数据时执行此操作。首先创建Movie to Actor
表,设置键约束并将其设置为在数据添加到Actors
表时自动更新。我更喜欢这个,因为它使事情变得容易得多,而且我认为在风格上更好。希望有人能指导我如何去做。我想我可以弄清楚如何将指令推断MySQL
为MySQL-python
,但需要有关如何执行前者的帮助。