说明:本文只是探讨一种思路,不代表其是“应用系统”的正确设计思路
一年前,sist的防伪中心购入了一套数码防伪系统:提供电话、互联网和Sms查询防伪码功能。具体运行框架我就不画图解释了。这套系统使用半年后由于收到业务瓶颈:客户要求加入物流分析功能。
防伪中心联系过软件系统提供商,但是对方报价太贵,于是找到了我们,问我们能否按照他们的要求重新打造一套防伪系统。
虽然没有做过防伪系统,但我也比较熟悉他们部门的业务,所以就尝试分析了一下如何先做这个防伪系统:
电话查询,语音卡的问题可以解决;
短信查询,需要找SP服务商,也好解决;
网络查询,更容易了;
用户管理,这是很普通的软件行为了;
防伪码生成,这个简单,随机16,18,20位的数字生成,然后存入数据库,以后检索就OK了。
我最初这么考虑这些问题,但是后来使用了他们的现有系统后发觉原来的思路不对:
他们生成的防伪码并没有存入数据库,防伪码是生成文本文件拿去印刷的;
系统没有任何地方存储这个防伪码的文本文件;
防伪码的文本文件丢失后可以重新生成,重新生成的文本文件同原文件一致;
为“益力”桶装水提供的防伪码就多达几百万条,现在已经有30多个厂商和无数个产品了,如果防伪码按照单条计算应该已经过亿了,上亿条数据如何检索?
简单的说就是这么几个问题:
防伪码不是使用随机数生成的;
防伪码没有使用数据入库这种存储方式,所以查询的时候也不是select * xxxxx;
按照规则重新生成防伪码和原来生成的防伪码一致;
我当时为难了,很久时间都没有思考出如何解决防伪码生成问题,甚至我去google和baidu都没有一个答案,虽然有一些启示。
鹅亲爱的朋友,如果你现在有“美国时间”,也无妨来帮俺想想这个问题,或许能从你哪里得到更好的答案呢。