我们如何在数据库中存储级联税?或用于存储税收的数据库结构

时间:2011-03-19 02:53:24

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

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

我有一个itemDetails表,其中包含名称和价格等项目的详细信息。

问题是每个项目有两个税务服务费(10%)和增值税(4%) 但税收是级联的,即在我申请服务费后,然后在新的总额我必须申请我申请增值税。

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

我有一个税收类别表,用户可以在其中存储税收结构,每个项目都属于税收类别,即itemDetailsTable中有TaxCategory_id。我需要你的帮助从那里搞清楚。

1 个答案:

答案 0 :(得分: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并使您的逻辑汇总税率并应用它们。