非常基本的SQLite表设计

时间:2013-10-14 20:14:01

标签: sqlite relational-database

我不理解SQLite中表的基本设置。

假设我有三张桌子:

Studio Table
studioID  studioName
--------  --------
1         Lucasfilm
2         Amblin Entertainment
3         Zoetrope Studios

Movie Table
movieID   movieName        studioID    actorID
--------  --------        --------    --------
1         Star Wars            1          1
2         Indiana Jones        1          1
3         Back to the Future   2          3
4         Apocalypse Now       3          2

Actor Table
actorID  lastName     firstName
-------- --------     --------
1        Ford         Harrison
2        Fishburne    Laurence
3        Lloyd        Christopher

这种结构不允许Harrison Ford和Laurence Fishburne在 Apocalypse Now 。使用类似表格在同一部电影中代表福特和菲什伯恩的传统方式是什么?对不起新手问题。

2 个答案:

答案 0 :(得分:1)

  

使用类似的表格表示同一部电影的传统方式是什么?

没有。

您需要另一张桌子:cast

cast table
---------
movieID
actorID

示例数据:

movieID | actorID
 4      | 1
 4      | 2

也许在cast表中甚至应该有另一列:roleName。同一个演员可以在一部电影中扮演多个角色。

答案 1 :(得分:0)

Studio 1:N Movies - >一个用于工作室的桌子,一个用于电影的桌子,并在电影中从工作室添加FK。

电影N:M演员 - >一个表为演员,另一个表连接电影和演员。