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