V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
larkifly
V2EX  ›  Python

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

  •  
  •   larkifly · 2014-05-05 10:46:42 +08:00 · 8471 次点击
    这是一个创建于 3615 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题所示,谢谢大家
    12 条回复    2014-05-05 13:03:04 +08:00
    xiaket
        1
    xiaket  
       2014-05-05 10:56:41 +08:00   ❤️ 1
    请检讨需求如此是否过于奇葩...
    vicalloy
        2
    vicalloy  
       2014-05-05 11:06:09 +08:00
    https://docs.djangoproject.com/en/1.6/ref/models/fields/#primary-key
    设置primary-key,然后手动管理。

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

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

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

    postgresql可以设置某个sequence的increment by.
    larkifly
        6
    larkifly  
    OP
       2014-05-05 11:31:00 +08:00
    @xiaket
    @vicalloy
    @skydiver
    网站url里包含用户id,不想让别人看到id就猜到了网站的实际用户数据,所以,打算设置间隔自增的id
    crazycookie
        7
    crazycookie  
       2014-05-05 11:51:18 +08:00
    典型的 XY 问题
    est
        8
    est  
       2014-05-05 11:52:46 +08:00
    @larkifly 那还不简单么。每次创建用户先创建n个僵尸用户占位。
    wy315700
        9
    wy315700  
       2014-05-05 11:59:57 +08:00
    @larkifly 如果这样的话,用类似UUID之类的不是更好
    alex321
        10
    alex321  
       2014-05-05 12:06:25 +08:00
    @larkifly 这个需求好无厘头。要限制别人查看可以通过权限来控制啊。
    单纯从这个需求的解决方法上看,如果用户基数小的话,采用程序唯一编码都可以,数据库不少都支持 Unique 的;用户基数中等程度,也就是百万级别的话,毫秒级别的注册时间+地址+随机数序列处理过之后足够你用了;用户基数有几千万上亿的话,参照银行卡的 google/twitter 的账户 id,或者 ipv6 地址;再往上,神仙了。
    guoqiao
        11
    guoqiao  
       2014-05-05 12:17:16 +08:00
    这种情况,用slug吧
    loading
        12
    loading  
       2014-05-05 13:03:04 +08:00 via Android
    谁叫你暴露id的,直接用户名吧!
    什么性能?你都怕人知道你这没人气…性能不是问题…
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2418 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:10 · PVG 00:10 · LAX 09:10 · JFK 12:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.