2013-11-21 17 views
0

让我在提出问题之前给出上下文。 我们开发发票系统,我们创建发票,验证它们并付款。依靠数据库中的一个字段

数据库架构包含以下表格:

发票
InvoiceItems
ReceivedItems。

所以我们验证每个发票项目的数量,并与收到的项目数量检查(这可能是相等的,或大或小 的过程是这样的:。

让的说发票项目数量为50

我们有所谓的信贷发票项目被记入在创建时的发票项目数量的字段。(说50数量有待验证)

我们收到来自各种来源的项目,我们更新收到物品时他们来了。 说我们最初有25件物品。 因此,我们将发票项目的贷方减少25,并将收到的项目标记为完成。 后来我们得到了其他25个,我们通过减少剩余的25个信用来验证。

所以信用现在是0. 这意味着发票已经完全验证。所以我们发送付款发票。

由于最近发生的错误事件发生后。

我们没有将发票项目的信用设置为发票项目数量。创建时其基本上为零。 所以我们的系统认为它的验证和付款。 我们在两个月后才意识到发票没有得到验证。

所以现在我们有多个检查拒绝而产生的发票,如果信用证为0

除了有多项检查,有什么办法可以解决高度依赖于一列的这个问题。 (这里发票项目上的信用为0,并且每张发票都未经验证支付)

我正在数据库(模式)级别或应用程序级别寻找任何类型的解决方案。

回答

0

该问题听起来更多地关于默认列值。您可以将该默认值设置为null,直到显式地显示“我还没有收到有关该值的数据”,然后继续获得该帐户的空值(因为任何+ null都设置为空)。

另一种方法是创建某种标志列,以明确地说“此行尚未处理,不要将该零作为确定”。

此外,您可以验证使用某些数据,例如时间戳记列或内部连接,只有在正常情况下才会生成行。

对于任何解决方案可能会促使您在模式和应用程序级重构。

相关问题