`

关于【商品计量单位以及这些计量单位换算】的设计

阅读更多

   前言

  大家在开发一些进销存系统的时候,肯定会遇到商品货物录入之类的需求,输入货物100吨,1000千克,进销存还简单一些,是内网应用,一个厂商不大可能又有重量单位的产品又有体积单位的产品。但是,如果是一个电子商务平台呢?上面的货物来自多个厂商,这就种类繁多了。在想一步,如果平台国际化了呢?加入国外厂商了,就会出现国际标准,甚至是一些国家的自己的标准(因为人家看的自己的标准舒服,你不能让人家都看你的标准吧)。公斤、斤、千克、克、升、毫升、米、毫米、磅等等都出来了,如何在一个系统中可以方便的兼容这些计量单位呢?也是大家在设计之初必须考虑的事情,而且会对后面的开发、维护产生重大的影响,不可小视。

  刚开完讨论会,会上大家又提到了商品(或者产品)单位和这些单位之间的换算如何存储以及计算,因为我们的系统计量单位繁多,多达20种以上,换算就更多了。下面有几种意见:

  1、个人用的时候,自己处理一下,每个人维护一套标准。

  这个种做法最后被抛弃了,因为不利于团队开发,个人用户还可以,每个人维护量太大,如果修改的话,维护量就更大了,消耗了工作量,在相同的工作时间中大家完成的是相同的工作。

  数据库的商品表格式如下

  

商品名称

商品数量

商品单位

土豆 100 公斤
白菜 200 千克
  2、使用公共类或者枚举来维护换算标准

  这个做法有人支持,相比第一种,这种统一的换算标准管理,将N个人的工作量变成了1个人的工作量,也算是一种重构吧。缺点就是,后期如果系统国际化了,需要加入国外的换算的话,需要修改,不够灵活吧。

  数据库的商品表格式如下

   

商品名称

商品数量

商品单位

土豆 100 公斤
白菜 200 千克

  3、用数据库记录

  增加灵活性、可扩展性,甚至添加计量单位和计量单位的换算都不用修改代码,直接在后天添加即可。

  单位表,记录全部可能使用的计量单位

   

单位编码

单位名称

1
2 千克
3
4 公斤

  单位换算表

   

源单位编码

目标单位编码

换算因子 

1 2 0.001
2 1000
1 3 0.02
3 1 500

  商品表格式如下

   

商品名称

商品数量

商品单位

土豆 100 1
白菜 200

 

  这样的话,随时可以添加计量单位和计量单位之间的换算因子,因为可以满足大部分需求。

  缺点

  1)但是还是有一点遗憾,换算表会很繁琐,数据量相当大,1-2、2-1、1-3、3-1这样搞下去的话,量还是比较大的,当然了,可以简化,2-1就不需要了,将1-2反过来就好了。

  2)好像不够标准,数据库换算有点乱,是不是大家都应该向一个标准看齐,都换算成一个标准来说话呢,这样是不是会更好一点呢?有待验证,就有了下面的修改

  3)如果有新的计量单位进来的话,划算表会很复杂,还容易遗漏呢。例如:上面是四种计量单位,现在我们引入磅,我们就要首先在计量单位表中增加一条记录,磅;因为磅是重量计量单位,它和公斤、斤、克、千克等原有的重量计量单位都可能有换算的需要,就目前来说就需要在换算表中添加四条记录,磅和公斤、磅和斤、磅和克、磅和千克的换算,遗漏一个都会出问题,想想随着计量单位的增加,换算表一次的增加量为计量单位表的条目总数,量可想而知。

  4、优化换算表

  新换算表格式

  

源单位编码

目标单位编码

换算因子 

1 1 1
2 1 0.001
3 1 0.02
4 1 0.001

 

  表中的1就是重量类单位的换算标准,大家都先换算成千克,在进行下一步的计算和比较,当然了,显示的时候还是显示成用户喜欢看到的格式,例如:公斤,磅之类的。

  这么做的优点有两个

  1)减少了换算表的维护量和数据量

  2)统一向一个标准单位换算,不同不标准单位的换算,先用两个不标准的都换算为标准单位,然后用换算出来的两个标准单位相比(相除),就得出了两个不标准单位的标准比例,这时候可以用标准单位计算、比较、显示,当然了,还可以根据需要显示为任何的非标准单位(只要反过来换算回去就可以了)。

   3)在没有优化划算表之前,添加一种计量单位,需要在换算表中添加N条记录,现在不需要了,因为每一类计量单位(目前想到的种类有三种:重量、长度、体积)都统一到一个标准的计量单位(量统一为千克、长度统一为米、体积统一为升),所以添加一个计量单位磅,只需要在换算表中添加一条记录,磅和千克的换算,即可,总共添加2条,而不是上面的1+N(N为计量单位表的总数)。

  其实有点像汇率的换算,在中国表现的时候都是100人名币可以换算多少各国货币,或者是100各国的货币可以换算多少RMB。

  上面都是我的一点小想法,希望做过类似复杂系统的老兄,给点指点,让我也长进长进。。!

分享到:
评论

相关推荐

    关于金蝶K3里的多计量单位和辅助计量单位的区别

    关于金蝶K3里的多计量单位和辅助计量单位的区别 在金蝶K3系统中,对于多计量单位和辅助计量单位的理解和应用是非常重要的。本文将详细介绍多计量单位和辅助计量单位的区别、应用场景和注意事项。 首先,我们需要...

    常用计量单位换算软件

    为了帮助用户便捷地完成这些计算,"常用计量单位换算软件"应运而生。这款软件集成了大量常见的计量单位,覆盖了多个领域,为用户提供了一站式的换算服务。 一、软件核心功能 1. 多类别单位支持:软件涵盖了长度、...

    SAP中和计量单位有关的表

    本文将详细介绍SAP系统中与计量单位相关的表及其用途,帮助读者更好地理解这些表的功能以及如何利用它们来优化业务流程。 #### 二、关键表格介绍 ##### 1. T006 - 计量单位 - **功能**:此表存储了所有可用的计量...

    常用能源计量单位及换算.pdf

    常用能源计量单位及换算.pdf

    文档中常用法定计量单位及换算

    文档中常用的法定计量单位及换算关系是理解各种科学、技术、工程以及日常生活中的测量标准的基础。中国的法定计量单位体系主要包括国际单位制的基本单位、辅助单位、具有专门名称的导出单位,以及国家选定的非国际...

    常用各种计量单位换算表.pdf

    常用各种计量单位换算表.pdf 本资源提供了常用的计量单位换算表,包括长度单位、重量单位、压力单位、容量单位等多种类型的换算表。这些换算表可以帮助用户快速地进行单位换算,提高工作效率。 一、重量单位换算表...

    计量单位换算器.exe

    计量单位换算器,是用来转换各种计量单位.

    常用计量单位换算,很有用

    这些基本的计量单位换算对于IT工程师来说,不仅在硬件设计中(比如电路板尺寸、设备尺寸计算)重要,还涉及到软件中的数据处理和分析,例如存储容量的计算(字节、KB、MB、GB、TB等)。了解和掌握这些换算,能确保在...

    JAVA实现的多计量单位转换.rar

    项目包含两个主要的Java源文件(MultiDoseUtil.java和UnitConvertCommon.java)以及一个数据库脚本(数据库.sql),旨在实现灵活且准确的单位换算功能。 **MultiDoseUtil.java**:这个类很可能是程序的核心,它负责...

    计量单位简表(单位换算一目了然)

    了解并掌握这些单位和它们之间的换算关系对于日常生活、科学研究以及国际间的交流都至关重要。无论是工程设计、科学研究,还是购物计量,都需要准确地使用和转换计量单位。因此,学习和理解这个计量单位简表是非常...

    通用计量单位和有关能源计量单位换算资料.pdf

    文档包含了丰富的计量单位换算信息,这些信息在科学、工程、贸易等领域都有着重要的应用。以下内容将详细展开介绍文档中涉及的一些主要知识点。 1. 长度单位的换算关系 长度单位之间的换算关系是文档中最基本的信息...

    换算计量单位.zip源码EXCEL VBA宏编程Excel VBA实用技巧范例下载

    换算计量单位.zip源码EXCEL VBA宏编程Excel VBA实用技巧范例下载换算计量单位.zip源码EXCEL VBA宏编程Excel VBA实用技巧范例下载换算计量单位.zip源码EXCEL VBA宏编程Excel VBA实用技巧范例下载换算计量单位.zip源码...

    化学常用计量单位换算表.pdf

    以下是一些主要的化学计量单位及它们之间的换算关系: 1. **重量单位**: - **公制单位**:基本单位是公斤(kg),其他单位如毫克(mg)、克(g)、分克(dg)、厘克(cg)、十克(q)、百克、公斤、公担(t)。1...

    常用法定计量单位及其换算归类.pdf

    在物理学和工程领域,了解和使用正确的计量单位是至关重要的。法定计量单位是国际上通用的标准,确保了数据的...理解并熟练掌握这些单位及其换算,对于在工程计算、科学研究以及日常生活中准确表达和理解数据至关重要。

    常用法定计量单位及其换算.pdf

    常用法定计量单位及其换算 在科学技术和工程实践中,计量单位是非常重要的概念。不同的计量单位可以用来表达不同...本文档列出了常用的法定计量单位及其换算关系,为科学技术和工程实践提供了便捷的计量单位换算工具。

    1-2 常用计量单位换算.zip

    "1-2 常用计量单位换算.zip"这个压缩包文件很可能是提供了一份关于常见计量单位转换的文档,帮助用户理解和应用各种单位之间的转换规则。 首先,让我们从最基础的存储单位开始。在计算机科学中,存储单位通常包括位...

    度量衡计量单位换算转换器.exe

    度量衡计量单位换算转换器

    1-2常用计量单位换算.pdf

    了解并熟练掌握这些计量单位换算对于IT工程师,尤其是从事硬件设计、嵌入式系统、自动化控制、数据处理等领域的专家至关重要,因为这些知识能确保他们在设计、测试和调试过程中使用正确的数值和单位,避免因单位错误...

Global site tag (gtag.js) - Google Analytics