django model 如何实现类似于 1,3,5,7,9 自增 id 字段

2014-05-05 10:46:42 +08:00
 larkifly
如题所示,谢谢大家
8490 次点击
所在节点    Python
12 条回复
xiaket
2014-05-05 10:56:41 +08:00
请检讨需求如此是否过于奇葩...
vicalloy
2014-05-05 11:06:09 +08:00
https://docs.djangoproject.com/en/1.6/ref/models/fields/#primary-key
设置primary-key,然后手动管理。

同楼上,这需求有点奇怪。
mengzhuo
2014-05-05 11:09:01 +08:00
可以设置一个给人看的id……不建议直接动pk,因为不好迁移数据库
skydiver
2014-05-05 11:10:39 +08:00
感觉是个XY问题 http://coolshell.cn/articles/10804.html

请问楼主的直接需求是什么?
Ever
2014-05-05 11:20:31 +08:00
自增主键改自增步长为了做多master写入还是挺常见的.

mysql比较简陋, 只能设置全局或者session的auto_increment_increment.

postgresql可以设置某个sequence的increment by.
larkifly
2014-05-05 11:31:00 +08:00
@xiaket
@vicalloy
@skydiver
网站url里包含用户id,不想让别人看到id就猜到了网站的实际用户数据,所以,打算设置间隔自增的id
crazycookie
2014-05-05 11:51:18 +08:00
典型的 XY 问题
est
2014-05-05 11:52:46 +08:00
@larkifly 那还不简单么。每次创建用户先创建n个僵尸用户占位。
wy315700
2014-05-05 11:59:57 +08:00
@larkifly 如果这样的话,用类似UUID之类的不是更好
alex321
2014-05-05 12:06:25 +08:00
@larkifly 这个需求好无厘头。要限制别人查看可以通过权限来控制啊。
单纯从这个需求的解决方法上看,如果用户基数小的话,采用程序唯一编码都可以,数据库不少都支持 Unique 的;用户基数中等程度,也就是百万级别的话,毫秒级别的注册时间+地址+随机数序列处理过之后足够你用了;用户基数有几千万上亿的话,参照银行卡的 google/twitter 的账户 id,或者 ipv6 地址;再往上,神仙了。
guoqiao
2014-05-05 12:17:16 +08:00
这种情况,用slug吧
loading
2014-05-05 13:03:04 +08:00
谁叫你暴露id的,直接用户名吧!
什么性能?你都怕人知道你这没人气…性能不是问题…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/111183

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX