我有一个表,其中包含一个项目中的人的数据。该表有一个Start
日期字段和一个可为空的End
日期字段。所以,一个人在一个项目上从Start
到End
。
目前,他们总是对项目计费。但我现在有一个新要求,即在一段时间内,他们可以不计费,但仍在从事该项目。因此,他们已被分配到该项目,并且正在工作,但由于某种原因,客户在分配的部分期间没有被计费,或者可能以较低的费率计费。
我的想法是有一个排除类型表,链接到人员分配表,该表将具有开始日期和结束日期,以及一个Rate
可以设置为零以表示免费的列,否则,可以用作覆盖值一段时间。
这看起来像是有效的设计吗?由于此人 95% 的时间都需要付费,而且可能永远不会有任何排除,因此对我来说,有一个排除表更有意义。
如果有人知道如何更好地做到这一点,那就太好了。
目前,我还有一个“日历”表,我根据该人的日程安排的开始/结束日期加入该表以获取每日费率。那么,我也可以加入排除日期,看看是否有覆盖率?
我在设计中可能会发现的问题是,很多连接都基于:
ON DateValue BETWEEN Start AND End
而且我不确定它们是最有效的连接。