深受王者之毒?不如撸一个系统可识别的自动编号

我已中毒,因此一些事情也耽搁太久~你一天可以拿农药连喝6个小时不倒,不如撸一个系统能够识别的自增编号。

记得两个多月前了解过web管理网站中的自动编号设计还是有很多细节需要注意的。具体的文章我已经找不到了。下面就django web框架中配合系统需要来设计一个自增的、系统可识别的编号。(难道我不打野你们也能赢?233…):编号的唯一性、编号的自增、系统可识别。就这三点。鉴于django的每个模型类都有个唯一的个ID,系统需要方面是管理后台区分了组,每个组里面的用户也有唯一的组ID,最后到model类下面的objects每个条目也有自个的唯一ID。django中叫它pk亦或者通用的叫法ID。数据库中通常出现的primary_key(一般唯一)。

好咯,就上面这么多个唯一来设计一下。面向”用户组”展开,系统自增编号=用户组ID + 模型类ID + (模型所属下的ObjectID+1000)。其中+1000好像有点画蛇添足了。不过让系统生成的编号看起来稍微更像一个单号来着。

假设你的组ID为:1,某模型类ID为:17,该模型下的某个objectId为:7,那么就自动生成一个类型下面的一个编号:

01171007 (开通的01为自动补全的组ID,补全是为了系统能够支持识别99个包含99个组的ID,鉴于系统根本不需要这么多,因此补全一个0即可。01后果的17是某个模型类的ID,这里你可以充分使用django中的ContentType框架来获取,1007的结果就是 …小学生都能3杀了。这里就不用多说了哈~)

下面来说一个这个编号(单号的)使用:

因为单号是唯一的,可以面向整个web Search接口或第三方支持提供一个统一查询的入口

http://xx.xx.xxx/?search=01171007

这样便可以相应的对象了。下面是代码片段:

auto add oddnumber in django model

“深受王者之毒?不如撸一个系统可识别的自动编号”的12个回复

    1. 还有,一到周末就不断掉位的情况一直没法解决啊。估计这次是遇上了厉害的小学生了。啊哈哈。

发表评论

电子邮件地址不会被公开。 必填项已用*标注