Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 具有公共关联表的数据库中的一对多关系_Database_Database Design_Relational Database_One To Many - Fatal编程技术网

Database 具有公共关联表的数据库中的一对多关系

Database 具有公共关联表的数据库中的一对多关系,database,database-design,relational-database,one-to-many,Database,Database Design,Relational Database,One To Many,想象一下,我有一个桌上电影院。它有电影的名字、导演等。它可以在任何时间开始和结束,这段时间是在另一个表中动态创建的:Schedule。 因此,电影时间表之间存在一对多关系。所以,这可以通过在调度中添加外键来解决。像这样的事情: 电影 身份证名称 1…矩阵 日程 青鱼。从……到。。。。。。周工作日 1。。。。。。。。17.00. 19.00..... 星期三 1……….20.00。星期四22:00 现在假设另一个表也希望使用这个调度,它在概念上与Cine完全分离,比如CarRevision 在这种

想象一下,我有一个桌上电影院。它有电影的名字、导演等。它可以在任何时间开始和结束,这段时间是在另一个表中动态创建的:Schedule。 因此,电影时间表之间存在一对多关系。所以,这可以通过在调度中添加外键来解决。像这样的事情:

电影 身份证名称 1…矩阵

日程 青鱼。从……到。。。。。。周工作日 1。。。。。。。。17.00. 19.00..... 星期三

1……….20.00。星期四22:00

现在假设另一个表也希望使用这个调度,它在概念上与Cine完全分离,比如CarRevision

在这种情况下,如何更好的设计数据库

是否将另一个外国ID添加到计划? 日程 青鱼。修订日期:从……至。。。。。。周工作日 1。。。。。。。。。空…………17.00。19.00..... 星期三

1…………空…………20.00。22.00..... 星期四

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

创建另一个表,如RevisionSchedule,与Schedule相同,但在逻辑上具有不同的外部ID? 其他解决方案?如果我们有许多概念上不同的表想要使用Schedule呢?
为了进行适当的规范化,您应该从计划中删除cine_id,因为它不是计划定义的直接部分

你会做一张新桌子

cine_schedule
--------------
cine_id
schedule_id
start_date
end_date
您还可以根据需要建立其他关系

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

等等。

所以,您的设计是为每个一对多关系创建不同的表。