Res*_*Res 6 sql database-design many-to-many
我正在设计一个电影编目器,它依赖于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
Run Code Online (Sandbox Code Playgroud)
基本上是使用联结表,电影 - >作家<人,电影 - >导演<人,最后是电影 - >演员< - 人的多对多关系.People表是用于绘制每个角色所需数据的池.由于一个人既可以是电影中的导演和明星,也可以是作家和导演,甚至是三个角色,我相信3个交汇表可以解决这个问题.当然,一个人也可以在很多电影中出现.所以我认为这是做到这一点的方法.
我通过几篇网络文章了解了建立多对多的关系,我阅读得越多,就越不清楚如何设置这种情况.大多数只是处理单个字段或使用作者/书籍类比,这无助于我理解如何实现我的情况.
如前所述,我的问题是,这是一种有效的方法吗?甚至是合适的?
我希望能够轻松查询电影,并将与其相关的所有信息提供给表单.
谢谢 - 谢谢
您正在模拟继承,但您的派生类型没有任何不同的字段,因此,您不妨将它们全部放在一个表中,并使用一个鉴别器列来指示它们的类型。
该建模问题的另一个复杂部分是您可以让同一个人担任多个角色,例如撰写、指导、明星。我认为您需要引入角色的概念。然后它链接到角色而不是人。角色类是多对多模型中的一个常见功能。
| 归档时间: |
|
| 查看次数: |
751 次 |
| 最近记录: |