数据库中的一对多关系与常见的相关表

时间:2014-02-13 18:25:31

标签: database database-design relational-database one-to-many

想象一下,我有一个表 Cine 。它拥有电影的名称,导演等。它可以随时开始和结束,而这一时间是在动态中创建的,在另一个表中:计划。 因此,在 Cine-Schedule 之间存在一对多关系。因此,这可以通过将外键添加到计划来解决。有点像这样:

电影

ID名称

1 ...矩阵


附表

CineID。从......到周日

1 .. ........ 17.00。 19.00 .....周三

1 ........... 20,00。 22.00 .....星期四


现在想象另一个表也想使用这个Scheduling,它在概念上完全与 Cine 分开,假设 CarRevision

在这种情况下,数据库的“更好的设计”怎么样?

  • 将另一个外国ID添加到Schedule?

附表

CineID。 RevisionID From To ...... WeekDay

1 .. ......... Null ............. 17.00。 19.00 .....周三

1 ............空............. 20,00。 22.00 .....周四

空......... 325 ............ 14.13。 14.34 .....星期一


  • 创建另一个表,例如 RevisionSchedule ,与Schedule相同,但使用-logically-不同的外国ID?

  • 其他解决方案?如果我们有许多想法使用Schedule的概念不同的表呢?

1 个答案:

答案 0 :(得分:0)

为了正确规范化,您可以从计划中删除cine_id - 因为它不是计划定义的直接部分

你会制作一张新表

cine_schedule
--------------
cine_id
schedule_id
start_date
end_date

您还可以根据需要建立其他关系

car_schedule
--------------
car_id
schedule_id

相关问题