【问题标题】:How do we store cascading taxes in a database? or database structure for storing taxes我们如何在数据库中存储级联税?或用于存储税金的数据库结构
【发布时间】:2012-05-04 04:30:34
【问题描述】:

您好,我必须创建一个用于存储税务详细信息的数据库结构。

我有一个itemDetails 表,其中包含商品的详细信息,例如名称和价格。

问题是每件商品有两种税费(10%)和增值税(4%) 但是税是级联的,即在我申请服务费之后,我必须在新的总额上申请增值税。

我想将它存储在数据库中;我可以通过硬编码来实现这一点,但我希望它在数据库中,以便将来如果客户想要他可以通过指定税款适用的顺序以及它们是否级联来存储更多税款。并且每个项目可能有不同的税收结构..(例如,一个项目可能具有上述税收结构,另一个项目只有增值税,另一个项目具有完全不同的结构等)

我有一个税收类别表,用户可以在其中存储税收结构,每个项目都属于一个税收类别,即itemDetailsTable 中有TaxCategory_id。我需要你的帮助来解决这个问题。

【问题讨论】:

  • 存储税的“类型”(我会存储特定类型而不是类别),然后以编程方式应用公式(让它对数据模型免费 ) -- 在您的程序或存储过程等中。计算的值可能被存储用于历史计算时间的目的,尽管这样的选择应该与业务需求(例如,如果公式改变会发生什么?)

标签: sql-server-2008 tsql database-design


【解决方案1】:

您可以添加另一个与 TaxCategory 具有多对一关系的表,该表使用排名列来定义税收的应用顺序。

TaxCategoryRates

taxCategoryId    taxRate    taxRank   taxDescription
-------------    -------    -------   --------------
1                10         1         Service Charge
1                4          2         VAT
2                3          NULL      Local Sales Tax
2                4.5        NULL      State Sales Tax

然后,您的逻辑按 taxRank 的顺序应用税收。如果您有其他税收类别的顺序无关紧要(如在 taxCategoryId 2 中),您可以将等级保留为 NULL,并让您的逻辑对税率求和并应用它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多