Python,sqlite3:用于插入多个值的数据格式



我很难为我的问题找到合适的标题。

我试图学习一点关于SQLite和数据库的知识,但我只做了一些练习(我知道,对于这个特定的案例,制作多个表没有多大意义,这只是为了练习和了解"操作方法")。数据库应该包含几个表:主"电影表"、"年份表"、《导演表》和"类别表"。图片便于理解。

在创建表之后,我想用元组来填充它们。我对"小"表没有问题,例如填充directors表。

    Dir = ((0, ‘Blip’), (1, ‘Blop’), (2, ‘Blap’))

然后:

with con:
    cur = con.cursor()    
    cur.execute("DROP TABLE IF EXISTS Directors")
    cur.execute("CREATE TABLE Directors(Id INT PRIMARY KEY, Director TEXT)")
    cur.executemany("INSERT INTO Directors VALUES(?, ?, ?)", Dir)

主电影表出现问题。如何为每部电影传递多个类别值?我应该将这个值集合作为另一个元组传递吗?

Movies = ((‘Dog’, 0, 0, 1), (‘Cat’, 0, 0, (1, 2)), 
         (‘Ant’, 1, 1, (0, 2)), (‘Crow’, 2, 2, (0, 1, 2)))

您需要另一个表。这是一种多对多的关系,因此需要一个包含Movies和Categories外键的直通表。然后你可以为每对(电影,类别)插入一行:所以:

Dog, 1
Cat, 1
Cat, 2
Ant, 0
Ant, 2
etc.

(此外,最好为每个表都有一个主键:对于电影,您可能希望使用一个自动递增的整数字段,而不是标题。)

最新更新