支付表设计

5
我有一个表格,保存参与项目人员的数据。该表具有一个开始日期字段和一个可为空的结束日期字段。因此,人员从开始结束都在项目中。
目前,他们总是对该项目开放账单。但我现在有一个新需求,在一段时间内,他们可以不计费,但仍在项目上工作。因此,他们已被分配到该项目,并正在工作,但由于某种原因,客户并未为他们分配的部分时间进行计费,或者可能按较低的费率计费。
我的想法是创建一个排除类型的表格,与人员分配表关联,它将具有开始日期、结束日期和费率列,可以将其设置为零以免费,否则,它将作为一段时间的覆盖值。
这个设计看起来合理吗?由于人员95%的时间都要进行计费,并且可能永远不会有任何排除,所以我认为创建一个排除表更有意义。
目前,我还有一个“日历”表格,根据人员的日程表的开始/结束日期连接到它,以获取每日费率。因此,我可以连接到排除日期,以查看是否存在费率覆盖?
我在设计中可能会遇到的问题是,很多连接都是基于:
 ON DateValue BETWEEN Start AND End

我不确定它们是否是最有效的连接方式。

3个回答

1
如果一个项目可能有一次或多次(一对多)异常情况,那么使用排除表的设计是最好的设计。
示例:
June 1, 2013 to June 30, 2013

排除:
June 9, 2013 - 0 Rate
June 25 to 27 - 30% of Original Rate

然而,如果排除是可能的,并且只能是一个最大的单一时间段(或一对一类型的关系),那么您可以将其放在项目表上的其他字段上。
例如:
June 1, 2013 to June 30, 2013

排除:
June 9, 2013 - 0 Rate

是的,它可能是一对零或多个。大多数情况下,没有排除。有时,某些资源会有一个例外。虽然不太可能,但有时他们可能会说:“在您使用该资源的6周内,每小时收费为100美元。在最后一周,您可以免费使用(每小时0美元)。由于他是项目的新成员,您可以在第一周以半价(每小时50美元)使用他。所以,我认为这个设计对此很有效。将有两个排除条目...一个是半价期间,另一个是免费期间。 - Craig
1
@Craig:如果是这样的话,正如我所提到的,您的设计是我所知道的最佳解决方案,即通过添加某些日期的排除或例外表格,并将其费率设置为0或低于原始费率。 - Edper

1
我会将这个“排除”表用作人员项目职业数据的单一存储。如果人员被分配到项目中且费率没有变化,则在此表中只有一条记录。在其他情况下,您将在此表中拥有费率更改的历史记录。

我不太明白。所以,99%的情况下,一个人被分配到一个项目,并且按照持续时间计费。但是有时候,一个人会加入一个为期三周的项目,但咨询公司决定在这三周的最后3天说客户可以免费使用他。因此,计划是有一个独占表格,其中包括起止日期和费率。在这种情况下,起始和结束日期将涵盖三天,而“费率”将为0。 - Craig
1
如果工人加入项目3周,为什么不简单地创建一个表格,其中包含两个条目,一个是正常费率的前2.5周的持续时间,另一个是最后3天的0费率?在正常情况下(99%),每个人只需有一个条目,覆盖整个持续时间。 - stakx - no longer contributing
你的数据库中如何实现项目-人员关系? - athabaska
这更像是一个与项目相关的资源。然后将人员分配给该资源。因此,项目有一个项目经理(即该资源),并且该资源的收费标准为每小时110美元。该资源每天工作8小时。然后可以将人员分配到该角色,但对费用没有影响。因此,资源具有ProjectId(与项目表相关联),StartDate,EndDate和HourlyRate,以及“ExpectedHoursPerDay”。 - Craig
我明白,Athabaska。我之所以考虑排除的原因是因为这是一个边缘情况。95%到100%的时间里,一个人被分配了,就这样。有时候,客户会免费得到一个人几天。因此,由于这种情况并不经常发生,更多的是“选择退出”。设计中有关于所有事情的表格。一个项目有资源,这些资源与一个人相关联。 - Craig
显示剩余2条评论

0

看起来您正在为特定时间段向客户提供标准费率折扣。对于这种情况,您可以将费率设置为负数,例如每小时-100美元,以便在您的折扣/排除表中设置资源费率为免费。您可以通过将折扣金额和标准金额相加来获取特定时间段内该资源的最终费率。在您的设计中,您已经提到了排除和人员分配表之间的关系。您的设计将允许显示已向客户提供的折扣。当您调整异常情况下的计费时,这种方法是可行的。

如果您试图在项目计费中进行更正,则应在人员分配表中为每个费率及其持续时间单独输入条目。

在向客户生成发票时,您可以显示调整后的折扣率或基于更正的新修订计费。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接