作者:虑得先生
以“费用报销”为例:
1. EXCEL思维:
做一个大表,每行一条报销记录,包含:申请人、部门、日期、费用类型、金额、发票号、审批人、审批状态、付款日期、银行流水号……
然后,每次输入,申请人、部门、审批人、费用类型这些都要重复录入,录错了一个字,后续的查询、汇总、分类就出错了。
2. 数据库思维:
涉及重复信息的,单独建张表,如上面提到的申请人、部门、审批人、费用类型等,每张表设主键,通过表的主键、外键形成关系。
字段之间形成一对多关系的,多方也要单独建表,如一个申请人对应多张发票信息、付款记录等,彼此之间用主键、外键连接,形成关系。
这里讲述的”主键“、”外键“、关系”不太精确,只能阐述大概意思,详细可查”数据库三范式“和“关系型数据库”等相关概念。
下面用三张表举例:
-
报销申请单|谁、什么时候、申请了多少钱、什么事由|一张申请可能对应多张发票,分开便于管理对应关系
-
发票信息|发票代码、发票号码、开票方、税额|同一张发票不能重复报销,需单独验真,防止重复
-
付款记录|哪天付的、付哪个账户、银行流水号|可能合并付款或分批付,独立记录资金流水
好处:
查“某张发票有没有重复报销”→直接查发票清单,不用翻所有报销记录。
查“哪些申请还没付款”→看申请单和付款记录的对应关系。
统计“供应商集中度”→从发票信息中提取开票方分析
关键概念:
主键:每张清单的“身份证号”(如报销单号、发票号),确保不重复。
外键:清单之间的“挂钩”(报销单号出现在发票信息里,表示这张发票属于哪笔申请)。
一对多:一笔申请对应多张发票,一个供应商开多张发票。
通过这个例子,可明白,啥信息都塞进一张“表”的做法,会给后续的数据统计、分析、分类等带来麻烦,而在EXCEL中建立“分表”,就已经是“数据库思维”了。
但EXCEL分表之间建立关系,是一件很麻烦的事,XLOOK写到手抽筋。这时,学习一些数据库(如SQLite)知识,就能达到事半功们的效果。
没办法,会计人天生就得活到老学到老!但我在20岁左右学习的EXCEL支撑我到现在,24岁左右学习的数据库概念,也一直用到现在。知识、技能,总是在不远处,会给你一个大大的惊喜!