我需要开发一个允许公司预测财务状况的网络应用程序。
该应用程序有不同的屏幕,一个用于定义员工工资,另一个用于销售预测等。基本上将一个 excel 财务预测模型变成一个应用程序。
问题是,设计数据库的最佳方式是什么,以便快速生成财务报告(例如损益表或资产负债表)?
- 假设预测期为 5 年,您是否有一个 5 年*12 个月 = 每行 60 个字段的表?性能够吗?
- 每当单个员工数据发生变化时,您会使用数据库触发器重新计算工资支出吗?
我需要开发一个允许公司预测财务状况的网络应用程序。
该应用程序有不同的屏幕,一个用于定义员工工资,另一个用于销售预测等。基本上将一个 excel 财务预测模型变成一个应用程序。
问题是,设计数据库的最佳方式是什么,以便快速生成财务报告(例如损益表或资产负债表)?
我认为最好将每个月的预测存储在自己的行中,如下所示
month forecast
----- --------
1 30000
2 31000
3 28000
... ...
60 52000
然后您可以使用聚合函数来计算预测报告、贴现现金流等(例如,如果您想要仅 4 年的未贴现总数):
SELECT SUM(forecast) from FORECASTS where month=>1 and month<=48
对于工资支出,我认为拥有一个动态计算的视图(或者如果你的数据库引擎支持“物化视图”应该有足够的性能,除非我们谈论的是大量员工或非常慢的数据库。
也许有一个工资历史表,当员工数据更改/工资单运行时触发填充
employeeId month Salary
---------- ----- ------
1 1 4000
2 1 3000
3 1 5000
1 2 4100
2 2 3100
3 2 4800
... ... ...
然后,您可以执行 SUM 或其他聚合函数来获取报告的数据。