我该如何设计TAX表?

时间:2010-09-02 01:03:57

标签: sql sql-server database oracle database-design

我有一个包含许多表的数据库。有些表具有单价列,无税,gst等列。我现在应该怎么做?我应该分别创建GST表,HST表和PST表。换句话说,设计税表的标准架构是什么?

3 个答案:

答案 0 :(得分:2)

您只需要一个税表百分比表:

CDN_TAXES

  • tax_id(主键)
  • tax_name(GST,HST,PST)
  • TAX_PERCENTAGE

因为HST涵盖了PST和GST,我将其建模为PRODUCT / etc表中的三列,并使用CHECK约束来强制关联HST列,或者至少关联一个PST / GST与产品相关联。

每次销售的税额应存储在SALES表中。加拿大的税表每年更新两次,百分比可以更改。这意味着如果您想重新打印准确的收据,您必须在销售时获取税额。

答案 1 :(得分:2)

我认为这取决于。为了存储税种和税率,当然,您可以在表格中对其进行标准化 - 甚至可以捕获它随着时间的推移而变化的开始和结束日期(尽管总是需要存储销售的实际税收)。

但是,通常您需要更多税务配置。例如,在美国,我们有一些从不征税的事情(牛奶),免税日,什么都没有(像汽车这样的例外)暂时征税,特殊日子没有征税(飓风准备物品如电池)和发电机)。

因此,您的产品表肯定不会持有税额,但可能会持有一些税号。其他表格可能会将产品链接到有税收的司法管辖区。如果您有一家多店铺公司,某些司法管辖区可能会以不同的方式征税,但您可能拥有一个共同的产品主文件,而且各个商店的定价可能相同,但税收会有所不同。

答案 2 :(得分:0)

我会说取决于列数。如果你只是在讨论3列,那么我会将它们添加到表格中,如果不使用则将它们留空。

如果您想进一步扩展它,请创建一个表来保存值,描述等。

然后可能有一个名为unitGST和unitHST等的查找表。这些表中的每一个都包含单位id和保存值的单个表的id。