如果发票可以作业,应该用作报价吗?

我有一个 Invoices 由与一个库存创建的表 Job 或者 Order. 。我可以有一个 Quotes 表作为库存和发票之间的中途房屋,但感觉我会拥有重复的数据结构和逻辑,只是为了处理“这是报价吗?”少量。

从业务角度来看,报价 与发票不同:在承诺之前发送报价,并在完成付款后发送发票,但如何在我的存储库和模型中表示此表示。

  • 在数据库中存储和管理报价和发票的一种优雅方法是什么?

编辑: 表明的 Job === Order 对于此特定实例。

有帮助吗?

解决方案

有3种方法:

  1. 将发票和报价存储在单独的表中。

    如果发票和报价的重复字段很少(否则,使用3张表的选项3),并且如果它们之间有1个多种关系或多种关系(对于1-1,请使用选项#2) )。

    如果普遍认为两者之间的“共享”信息可以在引用变为发票时可以突变(尽管这些突变中的某些突变应通过单独的字段/表格(例如应用折扣等)正确处理,这也是一个不错的选择。 。)。

    当多个引号变成单个(或多个)发票时,显然需要进行此选项的轻微变化。这添加了一个第三表,该表是一组引号和一组发票(如果得到的发票,则为它们的复杂)之间的映射。

  2. 将它们存储在同一张桌子中,并带有额外的标志“发票或报价”以及两个存储的任何额外字段。这可以用不同行的发票和报价来完成,或者它们共享行(也具有“两个”值的标志)。

    后者(同一行既可以是发票和报价)是一个不错的选择 如果它们被映射1比1, ,而且几乎没有区分这两个领域。

    前者(发票和报价的单独行)通常不是一个良好的设计,并且使用#3或#1选项更好。

  3. 有3张表,一张用于两者之间的常见字段,而只有两个桌子,仅用于发票,仅引用。

    如果发票和报价是1-1映射的,或者它们是1次,但许多发票中的每一个都具有与任何字段相同的字段值完全相同,则这是一个不错的选择。否则,请使用#1。

    当多个引号变成单个发票时,可以完成此选项的轻微变化。这添加了一个第四张表,该表是一组引号和一组incoice(如果得到这一复杂的发票)之间的映射。同样,这里的假设是,所有报价和链接/组合的发票之间都有大量的共同信息,否则只需使用#1即可。

其他提示

引号更类似于订单。我已经看到了几个带有订单表的分销/零售系统,该订单表的布尔标志名为Isquote之类的东西。这似乎很简单,因为它使将报价变成订单很琐碎。我从不喜欢它,因为从报价中发出的订单并不总是完全如引用。结果,像那些类似的系统丢失了可能有用的信息(即将报价与订单进行比较的报告)。因此,我更喜欢引用和订单表大致相同但分开的系统。在配电系统中,这通常会导致订购订单,订单线(与项目/库存表相关),报价标签和标记线等表。您可能还有一张表来建模一条报价可以映射到多个订单的关系。

发票通常是由订单产生的。有时,一张发票将收取多个订单。例如,在某些情况下,我已经看到公司每月向他们的好客户收取费用。我还看到它以另一种方式起作用,在多个发票(每次发货)上有多货物的大订单。

最后,付款通常与发票有很多与众不同的关系。有时,一笔付款涵盖了多个发票。有时,一张发票以几笔付款获得付款。

为简单起见,单个产品和服务被忽略了。

一种 销售报价 是一个 提议 在时间窗口(日期范围)中以价格出售给另一方的价格。该资产还不存在。您可以引用资产的规范(好)。

报价应在某个时候到期,并且在到期之前可能会接受,也可能不会被接受。

一种 销售订单 是一个 承诺 在日期到另一方以价格出售商品。它可以从接受的报价创建。

订单或报价可能具有付款条款,例如“您可以在交货后30天付款”。

订单可能是出于尚不存在的商品(您出售商品而不是资产)。也许您正在建立它。也许您会从别人那里购买。

销售订单导致 采购 (从库存,制造或购买)物理资产,然后是 运输 物理资产可能会或可能不会在交货中结束。有时,客户会向供应商“致电”以提取资产。

一般来说,资产必须是 转移 在将订单行计算为 收入 (这取决于您的运输条款,可能是在运输或交货中或中间)。

销售订单可以是 取消 (例如,某些行业有冷却期)。

一种 销售发票 是一个 付款要求 对于有序产品。它可能在交货,交货或交货后发生,或者根本没有发生(例如麦当劳的排队)。订单可能具有一张或多个发票,并且发票可能是多个订单的。

一张发票有望导致一个或多个发票 付款, , 哪个是 应用 到一个 帐户. 。付款通常会导致一个或多个 付款的收据. 。如果使用应计会计,则付款不一定与收入相同。

我建议尽可能灵活。使用以下表格

工作表,发票表,报价表

在您的发票表和报价表中,存储工作ID,给它索引并创建外键约束。将群集索引留在报价ID和发票ID上。

在最后一个系统上,我在引号和发票之间唯一的区别(就数据库而言)是表格上的标志,指示客户是否已被客户接受(这一点,在这一点上都生成了另一个语句信息除非是发票而不是报价)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top