数据库设计系列【6】当一个实体包含多个计算列时,如何处理?
2013-11-28 19:48 Mike.Jiang 阅读(1351) 评论(0) 编辑 收藏 举报当一个实体包含多个计算列时,如何处理?
1 示例需求:
在海外采购时,将产生多种费用,如:班轮费、报关费、卸货费,仓储费、利
息费,银行手续费等等。这些费用的公式如下:
班轮费 |
No. of FCL x rate |
报关费 |
No. of FCL x rate |
卸货费 |
No. of FCL x rate |
仓储费 |
Qty (MT) x Conversion (MT/m3) x rate |
利息费 |
N/A |
银行手续费 |
Bank Charges = Purchase Amount x 0.003 |
上面仅是一个简单的需求,根据公司所处的国家不同,这些公式也将做相应的调整;并且,隔一段时间,根据政策的变化,公式也需要做相应的调整。
2 解决方案
我们抛开国家和时间因素,这样就转为一个简单的公式计算问题:在采购合同模块,根据公式自动计算出多种费用,并存储于合同信息。
具体公式如:仓储费={QtyMT}x{ MTM3}x {rate}。计算时,将对应的值替换成具体值即可。
3 总结
类似有很多这样需要根据公式来计算出值的应用场景,可根据实际需要,对费用公式实体做进一步的设计,如加上国家、时间、费用类型、币种等因素。其中如果加上时间的因素,就要考虑加上历史数据如何管理。