我正在设计一个电影编目器,它将依赖 SQL 数据库来存储数据。我不是数据库设计专家,老实说,除了基本的数据库查询之外,我对其他任何事情都没有那么老练。我的问题是进行以下操作的最有效方法是什么。
我目前创建了 5 个表
Movies
------
[id] integer
[title] nvarchar(100)
[duration] integer
[year] datetime
People
------
[people_id] integer
[person] nvarchar(100)
Writers
-------
[id] integer
[people_id] integer
Directors
---------
[id] integer
[people_id] integer
Actors
------
[id] integer
[people_id] integer
基本上使用联结表的多对多关系,电影->作家<-人物,电影->导演<-人物,最后是电影->演员<-人物。People 表是从中提取每个角色所需数据的池。由于一个人可以同时是电影中的导演和明星,作家和导演,甚至三个角色,我相信 3 个连接表可以解决这个问题。自然,一个人也可以出现在许多电影中。所以我认为这是做到这一点的方法。
我通过几篇网络文章阅读了建立多对多关系的内容,并且阅读的越多,我对如何设置这种情况就越感到困惑。大多数只是处理一个领域或使用作者/书籍类比,这无助于我理解如何实现我的情况。
如前所述,我的问题是,这是一种有效的方法吗?甚至是正确的?
我希望能够轻松地查询一部电影,并将与它相关的所有信息都输出到一个表单中。
谢谢-Res