【发布时间】:2016-04-10 23:06:26
【问题描述】:
我正在开发一个电影数据库,其中包含演员和电影制作人的学分。目前,演员和电影制作人的学分都放在一个表中,因为它们仅相差一列(“role_id”外键永远不会用于电影制作人的学分——它始终为 NULL)。将它们放在一个表中(“movie_credits”)还是最好的做法还是分开(“actor_credits”和“filmmaker_credits”)更好?
这是我定义的一个非常基本的架构,我在其中包含了一些示例数据:
电影学分 +----+------------+---------+---------------+------ ----+ |编号 |人才ID |角色 ID |身份ID |标题ID | +----+------------+---------+---------------+------ ----+ | 1 | 1 | 1 | 1 | 1 | | 2 | 2 | 2 | 1 | 2 | | 3 | 1 |空 | 2 | 4 | +----+------------+---------+---------------+------ ----+ 天赋 +----+------------+------------+ |编号 |名字 |姓氏 | +----+------------+------------+ | 1 |克林特 |伊斯特伍德 | | 2 |西尔维斯特 |史泰龙 | +----+------------+------------+ 角色 +----+--------------+ |编号 |姓名 | +----+--------------+ | 1 |沃尔特·科瓦尔斯基 | | 2 |洛基巴尔博亚 | +----+--------------+ 身份 +----+--------------+ |编号 |身份 | +----+--------------+ | 1 |演员 | | 2 |导演 | | 3 |制片人 | | 4 |编剧 | +----+--------------+ 标题 +----+------------------+ |编号 |姓名 | +----+------------------+ | 1 |大都灵 | | 2 |洛基 | | 3 |信条 | | 4 |美国狙击手 | +----+------------------+如果您发现此方案的数据结构完全不同,请告诉我。我对任何可能更高效和可扩展的解决方案持开放态度。
【问题讨论】:
-
我的第一个想法是,由于同一个人可以在不同的图片上使用多个“身份”(您的术语),甚至在同一张图片上,您当前的解决方案将比拥有更灵活演员和工作人员的单独表格。有改进的余地,但我需要花一些时间。
-
感谢您的回复。澄清一下,我实际上并没有考虑将“人才”表分为演员和电影制片人,而是考虑将“电影学分”分为两个表(“actor_credits”将具有“role_id”列,“filmmaker_credits”将具有“identity_id”列)
标签: mysql database-design database-schema foreign-key-relationship