Database design 英国增值税从17.5%更改为15%——这将如何影响您的代码?
英国增值税制度正在从17.5%变为15%。您在代码中使用了哪些策略来存储VAT,以及更改将如何影响您的应用程序。您是存储增值税历史记录以便计算旧价格,还是将旧发票存储在单独的表中?这是一个简单的配置设置,还是你猜到了?存储增值税的理想方式是什么?我们从所有内部应用程序共享的数据库表中提取增值税,这意味着就我们的新代码而言,这对我们来说没什么大不了的。像这样将它集中起来是明智之举。我昨晚在代码中找到一个表,其中存储了应用程序的重要配置设置Database design 英国增值税从17.5%更改为15%——这将如何影响您的代码?,database-design,configuration-management,Database Design,Configuration Management,英国增值税制度正在从17.5%变为15%。您在代码中使用了哪些策略来存储VAT,以及更改将如何影响您的应用程序。您是存储增值税历史记录以便计算旧价格,还是将旧发票存储在单独的表中?这是一个简单的配置设置,还是你猜到了?存储增值税的理想方式是什么?我们从所有内部应用程序共享的数据库表中提取增值税,这意味着就我们的新代码而言,这对我们来说没什么大不了的。像这样将它集中起来是明智之举。我昨晚在代码中找到一个表,其中存储了应用程序的重要配置设置 Table tbl_config config_id
Table tbl_config
config_id int
config_name varchar(255)
config_value varchar(255)
其中一个设置是服务器的主管理员用户名和密码组合(unhashed)。我猜创建它的开发人员总是想要访问它,以防他忘记!不用说,它现在不见了。不要保存它。算算吧!
我建议存储基于百分比的利率/利息的方法是: 你应该有一张像“VAT_param”这样的桌子 利率|自(日期)起生效|至(日期)生效 我相信, “任何可以计算的东西, 不应保存“ 特别是在这样的情况下,你需要根据其他人的百分比(如税收、利息等)来计算价值,不要让时间-空间的权衡回避你。以后你会为自己花时间在太空上而庆幸 然后,增值税应根据该期间的有效税率,根据发票日期准确计算。会的
- 确保冗余最少(请不要谈论旧表或新表。几年后,如果利率每年变化一次,你将开始发毛)
- 有一个集中的单轴来控制速率。您的VAT_参数表
上表只是一个例子。增值税税率存储为“基点”(例如百分之一百个百分点)的整数,但假设增值税税率不会超过小数点后两位。很明显,您可以用一个额外的列来扩展它,以缓解这个问题,但这似乎有点太过分了 我们的增值税税率存储在一个数据库表中,所以对我们来说没什么大不了的,尽管我不得不举手说,由于我们对代码所做的一些修改的性质,增值税在几个地方是硬编码的(我的错!),我已经设法以另一种更令人兴奋的方式重新编写了 我的想法 a-我通常更喜欢计算增值税而不是存储增值税,但在这种情况下,计算增值税(以及用于计算增值税的费率和代码)应与每笔交易一起存储。这是因为它将是必须重复生成的文档的源数据。您还希望能够将销售的增值税金额与财务分类账中的增值税金额相匹配。您不想每次都以相同的方式重新生成发票或增值税报告之类的文档 b-增值税(或其他税)值应绝对存储在表中,并注明生效日期和税率。如果它是硬编码的,现在就做软编码的工作,因为它很可能在不久的将来再次改变 c- id | Rate name | VAT rate | Start date | End date --------------------------------------------------- 1 | Standard | 1750 | 01/01/1991 | 30/11/2008 2 | Standard | 1500 | 01/12/2008 | 31/12/2009 etc
SELECT * FROM vat WHERE NOW() > vat_date ORDER BY vat_date DESC LIMIT 1