gpt4 book ai didi

java - 处理申请中有效期的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-01 16:06:01 26 4
gpt4 key购买 nike

我们如何对这些对象建模?

场景 1:一段时间内的价格变化

EffectiveDate  ExpiryDate    Price
2009-01-01 2009-01-31 800$
2009-02-01 Null 900$

因此,如果价格在 2009-02-15 更改为 910$,则系统应自动将之前有效价格的到期日期更新为 2009-02-14,以保持一致。

场景 2:2009-02-01 至 2009-02-28 期间未指定价格

EffectiveDate  ExpiryDate    Price
2009-01-01 2009-01-31 800$
2009-03-01 Null 900$

因此,如果指定新价格为 2009-02-15 以后,则系统应自动将要插入的记录的到期日期设置为 2009-02-28,因为已经有一条从 2009-03- 起生效的记录01 存在。

请建议一种有效的方法来处理这些场景以对我的框架进行建模,或者是否有任何框架可以做到这一点。

谢谢

最佳答案

如果价格应始终有效,那么我将使用单个列并使用查询来确定到期时间。

Create Table Prices
(
EffectiveDate datetime not null
, Price decimal(15,4) not null
, Constraint UC_Prices_EffectiveDate Unique ( EffectiveDate )
)

Select P1.EffectiveDate As Start
, Coalesce(
(
Select Min(P2.EffectiveDate) As EffectiveDate
From Prices As P2
Where P2.EffectiveDate > P1.EffectiveDate)
), '9999-12-31') As End
, Price
From Prices As P1

您可以将后面的查询放入View中,以便可以轻松地在其他查询中使用。如果您尝试存储开始时间和过期时间,那么您需要添加一堆代码(可能在触发器中),以确保没有重叠也没有间隙。

关于java - 处理申请中有效期的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2582591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com