依赖于数据库中的一个字段

时间:2013-11-21 18:16:31

标签: database validation architecture

在我提出问题之前,请先说明一下情况。 我们致力于开发票系统,我们创建发票,验证它们并付款。

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

发票
InvoiceItems
ReceivedItems。

因此,我们验证每个发票项目数量并使用收到的项目数量进行检查。(它可能相同,更小或更大。 这个过程是这样的:

假设发票项目数量为50。

我们在发票项目上有一个名为credit的字段,该字段在创建时记入发票项目数量(说有50个数量需要验证)

我们收到各种来源的商品,我们会在收到商品时更新。 说我们最初有25件物品。 因此,我们将发票项目的信用额减少25,并将收到的项目标记为已完成。 之后我们得到了另外25个,我们通过减少剩下的25个信用来验证。

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

由于最近的开发人员错误,事情发生了。

我们没有将发票项目的信用额设置为发票项目数量.SO在创建时基本为零。 所以我们的系统认为它已经过验证并发送了付款。 我们才意识到,两个月后发票才得到验证。

所以现在我们有多次检查,如果信用额度为0,则在创建时拒绝发票。

除了进行多次检查之外,我们是否有办法解决高度依赖于某一列的问题。 (此处发票项目的贷方为0,每张发票均已付款而未经验证)

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

1 个答案:

答案 0 :(得分:0)

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

另一种方法是创建某种标记列,以明确说“此行尚未处理,不要将该值视为正常”。

此外,您可以验证使用您已经获得的某些数据(如时间戳列或内部联接,仅在正常条件下生成行)。

对于任何解决方案都可能会在架构和应用程序级别的重构中推动您。