什么是存储和查询发票数据和帐户数据的最佳方式?

时间:2014-02-22 20:04:19

标签: php mysql invoice accounts

我正在创建一个项目,该项目将管理业务的许多方面,但我目前正在编写发票,估算和信用部分。 我正在使用php和mysqli, 我在这一部分的前端工作正在顺利进行,但是在我变得太深并且在一个洞之前我可以做一点输入。 例如,我的发票,估算和信用数据在我的数据库中分开,我有inv并调用发票的表格,估计信用的est和est行以及信用的信用和信用额度,每个字段的字段相同,只需切换表格即可重复使用脚本取决于类型等 我的inv表存储了inv号,客户ID,客户详细信息发票日期净总数,增值税金额和总金额等,并且invlines存储了invref,产品编号,产品描述,成本价格净销售价格,增值税率,数量等 在这种情况下,我会在此处存储计算值以确保符合英国增值税。

好的,当我到达测试阶段时,我需要能够生成报告,例如库存变动,按名义代码(在投票表中)分析日期之间收取的增值税和损益(购买账户方尚未开始) )等等

我认为我的数据库结构将允许我从我存储的内容中查询和构建该信息,但我的问题是,我需要在发票点进一步细分这一点以加快报告速度。例如,在发票创建方面,我是否还要将增值税金额写入增值税控制表?如果我这样做,我是否还应该将库存变动写入库存控制表,显示何时,从哪来到哪里等等? 这可以继续在交易中写下所有内容。

作为脚注,我的数据库是为muiti企业设计的,因为每个表中的每一行都有一个名为coid的索引字段,该字段包含该公司独有的引用,我的脚本会检查该公司是否只能访问自己的数据。

先谢谢尼克

1 个答案:

答案 0 :(得分:0)

首先:您永远不应该在数据库中保存冗余数据。如果可以从原始数据中轻松检索信息,为什么要将其保存在缓存列中?这会带来缓存值可能错误的问题!这是没人想要的。

记住这一点,规则总是有例外。有些值很难计算,因此可能需要缓存这些值。这很可能不是这种情况。

另一个例外是人们可以命名(有点透支)“数据仓库”。例如有长期保持发票的法律要求。这些数据可能不会再改变(它的历史记录,所以应该改变什么?)并且可能需要能够在将来的任何时间输出过去特定日期的数据。此例外情况可能适用于您的情况!

如果这确实适用于您,我无法根据您提供的信息做出决定。你必须找出自己或提供详细信息(但这可能会超出SO问题的框架),但我希望我能给你一些指导思路。