你将如何使SQL颞许多一对多的关系?
-
21-08-2019 - |
解决方案
我的工作,同时使用时间数据和时间许多一对多关系的一个项目(现在一些年)。每个表具有ValidFrom和ValidUntil列(存储日期只)。
首先,必须定义有效*列,即ValidUntil是否包括从有效范围中排除的语义。您还需要指定NULL日期是否有效,以及他们的意思是。
接下来,需要几个功能,如dbo.Overlaps2()和dbo.Overlaps3(),它接收图2和3分别日期范围,并返回1,如果日期范围重叠,否则为0。
在最重要的是,我定义视图的多对多的关系与dbo.Overlap3(...)= 1。
另一点是有一个组,其计算基于在2代或3相关的表的日期的有效有效范围的功能。
最近,我不得不添加功能,以允许用户显示所有可用的数据,或仅当前有效数据。我在另一个组视图保存在一个用户表此设置,SPID打开连接时关联到用户,和筛选记录。
不隶属于 StackOverflow