V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DAOCLOUD
推荐学习书目
Python Cookbook
Using Google App Engine
推荐下载
Latest Google App Engine SDK
其他兼容技术
AppScale
labex.io
通过在线实验与 50 万用户一起学 Linux、DevOps 和网络安全技术,付款时输入 V2EX30 限时 30% 专属折扣
Promoted by JamesZHH
darcy
V2EX  ›  Google App Engine

Livid,关于数字ID的计算?

  •  
  •   darcy · 2010-05-02 11:57:37 +08:00 · 5095 次点击
    这是一个创建于 5552 天前的主题,其中的信息可能已经有所发展或是发生改变。
    http://v2ex.appspot.com/t/213
    请问一下最后213这个ID,你每次处理是自己计算该使用的编号还是直接数据库的key_id,貌似使用key_id数字不是连续的
    5 条回复    1970-01-01 08:00:00 +08:00
    muxi
        1
    muxi  
       2010-05-02 12:08:08 +08:00
    big table 的ID是不连续的,这个应该是自己算好,然后存进去的
    vvoody
        2
    vvoody  
       2010-05-02 17:18:11 +08:00
    from google.appengine.ext import db

    class Accumulator(db.Model):
    counter = db.IntegerProperty()

    def increment_counter(key, amount):
    obj = db.get(key)
    obj.counter += amount
    obj.put()

    q = db.GqlQuery("SELECT * FROM Accumulator")
    acc = q.get()

    db.run_in_transaction(increment_counter, acc.key(), 5)

    可以自己这么维护一个counter
    vvoody
        3
    vvoody  
       2010-05-02 17:18:34 +08:00
    @Livid 空格被吃掉啦
    Livid
        4
    Livid  
    MOD
    PRO
       2010-05-02 17:41:43 +08:00
    嗯,确实是自己维护一组 counter。
    darcy
        5
    darcy  
    OP
       2010-05-02 23:21:24 +08:00
    @vvoody @Livid
    看来也只有这样了,谢谢。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5290 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 08:04 · PVG 16:04 · LAX 01:04 · JFK 04:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.