`
java-mans
  • 浏览: 11451410 次
文章分类
社区版块
存档分类
最新评论

有意义的编码

 
阅读更多

现象描述:

使用有意义的编码作为一条记录的ID,甚至作为数据库的主键存在,例如,一个员工的编码设置为0203004,其中02代表员工所在分公司,03代表员工所在部门,004代表员工进入到该部门的序号。

原因分析:

ID的设置方式大概有以下几种,一种是纯粹的流水号,从1开始,每次加1,或者对其将以改进,将数字转换成为字符串的格式,比方说“0000001”;一种是无意义的随机编码,比方说GUID;还有一种就是有意义的编码,特定的位数会代表一定的意义。

我想之所以大家这么喜欢使用这种方式,主要是因为想要从编码中就能够得到一些信息,甚至有些程序中还有专门的对编码进行解析的模块。就像我们的身份证号码一样,看到身份证号就可以知道办身份证时的所在地、生日、性别等信息。

问题所在:

其实有意义的编码会导致很多问题,请看:

问题一:对编码资源的浪费。如果是纯粹的流水号,那么从1到10000就可以代表一万条记录,但是,如果使用有意义的编码,很可能1000条记录就会让五位的编码不够用。我就遇到过真正的情况,我们公司的投保单号码的第一位就是有意义的,代表的时该投保单所属的渠道,后面跟着很长的一串数字(9位)。理论上来说,这些编码永远都不会用完,但是,最开始的三个渠道使用的是1、4、7三个编码,但是一次新保险法的实行,导致原有的投保单作废,于是又启用了三个数字2、5、8,接下来公司改名,三个渠道又分别将投保单报废,重新启用新的开头数字,就这样,短短的几年间,所有的投保单号码全都被用完了,其实打印出来的投保单不过100万张。

问题二:不一定是唯一的,难以作为主键。想一下,我们的身份证号码就是这样的。原先15位的时候,后三位是序号,而男性会使用奇数,女性会使用偶数,这样就是说,一个地区同一天生日的人,男女都不能超过500人,否则就会导致号码的重复,尽管出现这种现象的概率比较低,但是还是客观存在的。

问题三:代表的意义不一定准确。比方说用带有意义的编码来为员工定义工号,其中可能会有部门、职务等等意义,但是如果员工在部门间发生了调动,或者职级发生了改变,是否需要改变他的编码呢?改变吧,那么所有的历史数据都要随之修改一次,工作量会非常大;不改变吧,那么代表的意义就不再准确,我们就无法从编码中得到该员工准确的信息。

解决方案:

所以,对于编码,非常不建议使用有意义的编码,要么使用纯粹的流水号,但这样可能需要定义一个范围比较大的类型,对于海量记录的数据,可能会不够用;那样的话就可以使用GUID,这样编码永远都不会重复,而且会有大量的编码资源可用。

在数据库设计的过程中,有一些在非常多系统中都使用了,但是却带来了很多问题的方法,对于这种情况,我们就应该仔细思考,然后痛下决心,坚决抵制。

分享到:
评论

相关推荐

    物料编码原则——物料编码的意义

    在物料极为单纯、物料种类极少的工厂或许有没有物料编码都无关紧要,但在物料多到数百种或数千、数万种以上的工厂,物料编码就显得格外重要了。此时,物料的领发、验收,请购、跟催、盘点、储存等工作极为频紧,而藉...

    ERP编码规则意义与原则

    以物料的编码为主线讲解编码的原则,但所讲编码原则同样适用于系统的客户编码、供货商编码、职员编码、部门编码、单位编码、仓库编码、各种类别编码和其它需要编码的任何项目等。

    行程编码,JPEG压缩编码基本系统_jpeg压缩编码_Vc_图像压缩_

    行程编码,JPEG压缩编码(基本系统)的源码示例,对了解低层图像编码有重要意义

    香农编码的matlab语言实现

    首先,给定信源符号概率,要先判断信源符号概率是否满足概率分布,即各概率之和是否为1,如果不为1就没有继续进行编码的必要,虽然任可以正常编码,但编码失去了意义。 其次,对信源符号概率进行从小到大的排序,...

    团队项目开发"编码规范"

    规范的编码风格不仅体现了一个人的技术水平,从某种意义上说也体现了一个企业的形象。好的、规范的编码风格,对于整个项目团队来说显得尤为重要。本系列文章对于“编码风格”的说明仅做参考,希望能对你有所帮助。 ...

    2信息编码信息技术教案.doc

    " " "过程与方法: " " "通过游戏和对生活中常见编码的讨论,了解常见的编码方式及其对" " "信息处理的意义。 " " "情感态度与价值观: " " "通过游戏体会信息编码活动的过程,感受信息编码给社会和人们生" " "活...

    matlab实现汉明编码

    实现汉明编码,对matlab实现汉明编码有重要意义,可用于图像,音频中嵌入信息,减小误码率。

    地理信息系统基础:地理信息分类与编码.pptx

    一、分类与编码的意义;;二、分类与编码的原则;;三、地理要素类型分类;三、地理要素类型分类;;四、地理编码;4.1地理要素编码规则;4.1地理要素编码规则;4.2地理编码组成;国家标准Gb/T14395-2009(识别码举例);4.3 ...

    H.264视频编码研究的PPT

    H.264视频编码标准是2003年5月...H.264优异的编码性能对于市场具有极大的诱惑力,而研究H.264编码的快速算法及其实现是H.264走向市场的前提和保证,因此对H.264视频编码算法进行优化具有十分重要的理论意义和实用价值。

    ArcView软件中的地理编码方法改进

    地理编码在GIS中的应用和研究中具有重要的意义。现有的GIS软件一般都有地理编码的功能,但在实际的操作中,都存在一些不足,主要有两个方面,一是不能基于多个参考主题同步匹配;二是基于地块的匹配,相同地址的记录...

    H.264视频编码性能分析

    H.264视频编码标准是2003年5月...H.264优异的编码性能对于市场具有极大的诱惑力,而研究H.264编码的快速算法及其实现是H.264走向市场的前提和保证,因此对H.264视频编码算法进行优化具有十分重要的理论意义和实用价值。

    matlab编写实现turbo编码的程序

    有详细的注释,自己写的,可用,对理解turbo编码很有意义!!

    KKS编码导则(概念部分)

    KKS是德语 Kraftwerk-Kennzeichen ...KKS源于德国的编码技术,目前已得到世界许多电厂采用。 在我国,电规院规定新建电厂设计就要求标识KKS编码;各大电力集团公司对已投产电厂也在逐步采用KKS编码,替换原有的编码。

    霍尔的“编码/解码”理论在翻译研究中的应用

    该理论对翻译研究有很大的借鉴意义,充分阐明翻译不是在真空中进行,而是从特定的符码系统中产生,翻译是一种典型的解码和编码行为。而且,较之信息论在翻译研究中的运用和翻译中的改写操纵论,"编码/解码"理论在翻译研究...

    论文研究 - 使用具有最大平均差异(MMD)的梯形变分自动编码器生成人脸

    生成模型已经证明在从未标记的数据中学习特征方面非常有用。 特别是,可变自动编码... 特别是,我们证明了我们可以解开高度有意义和可解释的功能。 此外,我们能够对人脸执行算术运算并修改人脸以添加或删除高级特征。

    信道编码简介

    信道编码,也叫差错控制编码,是所有现代通信系统的基石。几十年来,信道编码技术不断逼近香农极限,波澜壮阔般推动着人类通信迈过一个又一个顶峰。5G到来,我们还能突破自我,再创通信奇迹吗?

    胃癌相关长链非编码RNA的作用及其意义.pdf

    胃癌相关长链非编码RNA的作用及其意义.pdf

    网络编码的一种代数编码

    网络编码的一种代数编码,对于学习网格编码比较有借鉴意义

    比亚迪物料编码培训教材

    比亚迪物料编码培训教材,对从事物料编码或数据维护的人员非常有借鉴意义

    ERP管理系统软件物料编码的意义及误区.doc

    ERP管理系统软件物料编码的意义及误区

Global site tag (gtag.js) - Google Analytics