sql - 数据库设计,我很困惑我的关系应该如何看待以及我是否应该在这些表中的任何一个中包含复合键
问题描述
对于每部电影,都应该有可能存储演员和创作者的名单。演员名单应包含姓名、姓氏和电影中角色的姓名。创作者名单应包含姓名、姓氏、电话号码、电子邮件和职位(例如导演、演员)。这部电影可以有不止一位导演。
同一个人可以在演员名单和创作者名单上。演员可以扮演多个角色。创建者可以拥有多个功能。
我想出了一些东西,但我对此不是很有信心,如果有人能指导我完成这个,你的帮助将不胜感激。这是一个屏幕截图:
解决方案
看到你的设计,我首先想到的是演员和创作者可能是同一个人,也可能不是同一个人的问题。
我建议您从具有人的所有共同特征的人表开始:姓名、姓氏、电话号码、电子邮件。
然后,您的表 Actor、Creator、Director 将具有指向该表 Person 的不可空外键。因为每个 Actor、Creator 等都是在所有 Person 之前。
我认为解决您的问题将有很长的路要走...
推荐阅读
- mvvm - 使用 Flutter 作用域模型时从模型深处通知侦听器
- ruby-on-rails - 如何在 RSpec 中另一个工厂内定义的工厂中定义两个新属性?
- javascript - 如何更改线路共享插件的图像图标
- php - PDO ODBC MYSQL:我尝试连接,但它给了我一个致命错误
- r - 如何`grep()`只有数字和浮点数以及带有数字/浮点数的符号而不是带有数字的字符
- javascript - 如何在axios中得到正确的答案形式
- reflection - 如何使用 callBy() 调用 Kotlin 配套工厂方法?
- javascript - 在 2 个表单之间动态传递输入数据
- nginx - nginx 返回部分响应
- apache-flink - Flink Kinesis Consumer 未存储最后成功处理的序列号