这一节我们来学习一个新的数据规范:自动编号。自动编号需要我们先设置,然后再绑定使用。
功能介绍
自动编号是我们在系统设计过程中非常重要的一个功能。它代表了系统设计思想的精髓,在我们任何一个称之为”系统”的应用中,其实都是通过编码来实现大多数系统功能的。可以这么说,在关系型应用中,如果没有编码,将会减少90%的应用价值。
自动编号能够在表单上生成唯一的ID码,目的是可以给每一条数据一个唯一的身份信息。就像我们每个人都有一个身份证号码,他代表着每个人信息的唯一性。这样我们在进行数据处理时,就能够通过唯一编码进行识别。
我们在模板样式章节中讲到,系统的一个特性就是能够实现数据关联,这是Excel表格所不具备的能力。要如何能够实现数据关联,利用的就是具有唯一属性的ID码。系统之所以称之为系统,首先要保证的是数据流转过程中的强关联,ID码在其中发挥着核心的作用。
应用实例
先给大家举一个例子,我们来感受下有编码和无编码在数据管理中的区别
我们在填写销售订单时,会选择客户信息表中的客户信息。如果某一天客户信息由于工商变更调整了单位名称,这个时候我们再统计这家客户的销售数据时就比较困难。但是如果我们使用了客户编码字段,不管客户名称如何变化,编码都是不会变的,这时,任何与之相关的统计都不会出现问题,这就是ID编码所起的作用。
📺有无编码对比操作
自动编号的设置原则
上面的例子给大家简单的演示了一下有无编码的区别,编码的应用在系统设计过程中非常重要,希望大家一定要重视起来,如果把一套系统比喻成一栋房子,那编码就是这栋房子的承重墙,哪里缺,哪里就有可能产生坍塌的风险。
那编码的设置和利用原则是什么样的呢?
定义的每一个数据表,都应该有相应的编码字段
一、原则上,我们定义的每一个数据表,都应该有相应的编码字段,这里要强调的是每一个数据表,而不是每一个模板,如果一个模板中有主子表,不光主表上要有编码字段,子表上也应该设置编码字段,来保证每条数据的唯一性。例如,我们在建立销售管理模块时,有客户信息,产品信息,销售订单,销售订单查询等模板;客户信息和产品信息模板,我们需要建立客户编码字段和产品编码字段;销售订单是主子表结构,我们需要在主表上设置单据编码字段,明细表上设置单据明细号字段。
数据发生调用时,调用的数据对应的编码字段也要一并调取过来
二、在关系型业务中,数据发生调用时,调用的数据对应的编码字段也要一并调取过来,比如我们在销售订单中调取了客户信息和产品信息,那么客户编码和产品编码也应该一起调取过来,来保证数据的关联性。
自动编号的建立
自动编号的建立过程比较简单,但要理解几个设置项的含义。一般,自动编码的结构由前缀
+日期
部分+流水号
三部分组成。
比如销售订单编码XS20230808001,单据明细码 MX230101000001,产品信息编码 CP2300001等。
自动编码的应用是绑定在基础模板和业务模板上,基础模板的自动编码日期部分可以为无,或者设置为年份或年月即可,流水号以周期内可能产生的最大数目为准。
比如,产品信息最多可达到几千个,可设置4位流水号。业务模板中主表信息,日期部分一般年月日,流水号以周期内可能产生的最大数为准,比如,每天的销售订单最多几百个,则可设置3位流水号;扩展表的自动编码我们一般叫做单据明细号,日期部分一般为年月日,流水号一般设置6-8位,同时,为了简化设计,不同扩展表的明细号可以复用。但是主表上的自动编码我们一般都是单独设置的。
模板 | 自动编码 | 格式 | 说明 |
---|---|---|---|
产品信息 | 产品信息编码 | C00001 | 基础信息编码可不用 |
客户信息 | 客户信息编码 | K0001 | |
供应商信息 | 供应商信息编码 | G230001 | |
销售订单 | 销售订单编码 | XS20230101001 | 单据编码以前缀,年月日+流水号形式 |
单据明细码 | MX20230101000001 | ||
采购订单 | 采购订单编码 | CG20230101001 | |
单据明细码 | MX20230101000001 | 明细码可复用 |
📺自动编号组成说明
废号重用规则
废号是指使用过后又被舍弃掉的编码,一般是删除表单或者新建未保存表单时造成的。
对于废号的使用,是根据我们的设置规则来定的。系统中废号重用有三种规则:关闭重用,完整重用(全部回收)和顺序重用(部分回收)。
我们通过举例来说明这三种规则的差异性。比如:我们生成了001,002,003,004编码,现将002和004编码删除,这就产生了两个废号。
当我们设置废号重用关闭时,再次新增单据时系统会自动往下生成编码005,再新增单据,会按顺序生成006,007……;
当我们设置废号完整重用时,再次新增单据时系统会先生成002和004,再新增单据,会按顺序生成005,006……;
下图是先生成001,002,003,004编码,然后删除002和004编码后,不设置废号重用,设置废号重用,顺序重用,完整重用的对比图
需要指出的是,我们在系统设置的时候,不用一味的追求编码的连续性。对于系统编码而言,保证编码是唯一并且升序生成就足够了,按升序生成对系统的意义也非常重要,这在后面数字化处理应用会跟大家具体讲解。同时BS架构的产品,由于依赖浏览器的使用,同时,产品也无法检测到浏览器的一些动作,当用户在刷新浏览器时,也有可能产生跳号的问题。
📺浏览器跳号+小知识:自动编号-废号重用
自动编号的生成时机
自动编号的生成时机分为两种,一种是新增时生成,一种是保存时生成,但自动编码的绑定情况也分两种,绑定在主表上,和绑定在扩展表上。当自动编码绑定在主表上时,默认是新增时生成自动编码的,如果你想减少跳号的情况,也可以设置为保存时产生;当自动编码绑定在扩展表时,由于填报时不明确扩展表的具体行数,所以扩展表的自动编码只在保存时生成。
📺自动编号生成
上面我们给大家介绍了自动编码的整个建立原则和方法,希望大家对自动编码有一个深刻的理解和认识,我们建立自动编码的核心目的就是给每条数据一个唯一的标识,所有数据流转的时候,对应的唯一标识也要一起流转的。这样在进行数据管理时,我们才能更加的清晰和精准。
请登录后查看评论内容