2011-09-18 87 views
3

我需要为我的项目添加每省/州税。如何在数据库中存储税款?

我在辩论是否应该在省份和税收之间添加多对多关系,或者只是向每个省添加tax1_name,tax1_rate,tax2_name,tax2_rate。我不觉得任何地方的税收超过2个?

我还需要在每张发票的购买时存储税率。

所以我的选项是添加2多对多表或添加8个字段。你会去哪,为什么?


或者我可以只有1个组合税。如果它在发票上显示为“GST + PST”,我认为它不会太坏。这将解决这个问题,愚蠢的魁北克在GST(税收税!)上收取QST费用。


或者我可以有1个多对多台并存储每个纳税的开始和结束日期,然后当我生成发票,我可以根据日期查找。

回答

5

你真正需要的是这样的:

enter image description here

与总税收合并成一个单一领域的问题是,虽然你可能或可能不会让在向客户收据上显示这种方式,各个司法管辖区都希望您和您的会计师分别追踪所收税款。因此混合费率不会这样做,因为您需要支出的数额,以便您可以支付税务人员和满足其审计师。

在我对您的问题的建议解决方案中,请注意TAX_RATE表包含纳税和推举之间的交集。这是如此,不仅从管辖权到管辖权,价格可以改变,但它可以随时间变化

还要注意,税率表包含calculation_order值。这可以是任何你喜欢的,可以分类和比较的东西。我之前使用过整数。这个想法是,你从第一个开始按顺序申请税。如果您有两个税项适用于相同的基本金额,则这些税款具有相同的计算顺序。如果您在税收一上缴税二,那么税二的计算顺序较高。

最后,我列出了一张表格,允许您随时跟踪免税情况。你可以处理这种不同的方式,我绘制它的方式可能不是最好的或最简单的。关键是要包括一种机制来说“产品X确实(或不)获得税收Y(超过给定的日期范围)”。

+0

哇。可能比我的需要复杂一点,但听起来好像它会做所有事情:) – mpen

相关问题