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

时间:2016-05-04 14:23:10

标签: python database sqlite

我遇到一些困难,无法为我的问题找到合适的头衔。

我正在尝试学习一些关于SQLite和数据库的知识,我想出了一些练习(我知道,对于这个特殊情况,制作多个表没有多大意义,它只是用于锻炼和寻找'怎么做')。 该数据库应该包含几个表:主要的“电影表”,“年份表”,“导演表”和“类别表”。 Picture for easier understanding.

创建表后,我想用元组元组填充它们。我对“小”表没有问题,比如填充导向表。

    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)))

1 个答案:

答案 0 :(得分:1)

你需要另一张桌子。这是一种多对多的关系,因此需要一个带有外键的电影和类别的直通表。然后你可以为每对(电影,类别)插入一行:so:

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

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