单据数据结构设计
单据形式
企业中的表单(请假单、加班单等等)大多数完成两个功能:一、审批;二、产生业务记录。一般情况下,会根据表单上字段所处的位置,将其设计为单据头、单据体那样一对多的关系。通一个业务可能表单的形式不尽相同,以加班单为例:有一人多天加班、有多人一天加班,有多人多天的加班。不论怎么变化,只是数据的表现形式不一样而已,只有遵循一定的设计方法才能应付这种变化
数据结构设计方法
对字段进行分类,也就是放在主表还是放在子表的问题,依据是:属于单据头的信息放在主表中,属于单据体的信息放在子表中,字表中的数据必须不依赖主表的数据就能自我表达。这里要注意的,不要照搬客户纸质单据对数据的组织形式。
以加班单说明这种结果
主表字段 |
字表字段 |
登记时间 |
员工 |
登记人 |
加班时间 |
加班单号 |
加班类型 |
审批人 |
加班小时数 |
这种设计不论是一人多天加班、多人一天加班、多人多天的加班都能满足。
有时为了查询方便,可能需要在主表上添加字段,但如果该字段可以归并到字表中,则最好在字表中也添加同种含义的字段,主表中的字段作为冗余存在。这样做的目的是保证业务稳定,而表现可以多变。