SQL父子结构

时间:2017-06-14 03:01:08

标签: sql parent-child

我有一个停车应用程序,为了安排部分,我有以下两个表:

时间表:

  • ScheduleId(PK)
  • 开始日期
  • 结束日期
  • ParentScheduleId(不确定我是否真的需要这个!)

ScheduleDetail

  • ScheduleDetailId(PK)
  • ScheduleId(FK)
  • DAYOFWEEK
  • 开始时间
  • 结束时间
  • IsActive

在一个计划期间内(例如StartDate:2016年1月1日 - 结束日期:2017年1月1日)我可以有一个或多个附表(例如StartDate:2016年1月3日 - 结束日期:7 / 3/2016,StartDate:1/5/2016 - EndDate:25/5/2016),每个都有自己的ScheduleDetail。即使在每个子计划中,我也可以有一个或多个附表。

我基本上结束了这种结构,让用户在一定时期内定义不同的可用性。例如,如果在2016年,他们希望在圣诞节公共假期或任何其他场合有不同类型的可用性。或者,如果他们想从某个时期删除某一天。

我的问题是如何查询这样的表结构,以获得最内部定义的Schedule和ScheduleDetails作为正确的可用性。

示例数据

Schedule

ScheduleDetail

我需要有一个逻辑来根据请求提供以下输出:

2/03/2016 10:00 - 2/03/2016 14:00在ScheduleDetailId中落入10,这意味着无法使用

1/05/2016 10:00 - 1/05/2016 11:00在ScheduleDetailId中落入15,这意味着可用

10/03/2016 10:00 - 10/03/2016 11:00在ScheduleDetailId中落入20,这意味着无法使用

2/01/2016 9:00 - 2/01/2016 11:00在ScheduleDetailId中落入6,这意味着可用

提前感谢您的帮助:)

0 个答案:

没有答案