说我有一个博客应用程序,有博客文章和评论。
class BlogPost(ndb.Model):
title = ndb.StringProperty()
description = ndb.TextProperty()
我在博客文章中有用户评论的另一个模型:
class Comment(ndb.Model):
username = ndb.StringProperty()
blog_id = ndb.StringProperty()
created = ndb.DateTimeProperty(auto_now_add=True)
当我查询特定BlogPost的所有评论时,我会这样做:
query = Comment.query(Comment.blog_id==blog_id).order(-Comment.created)
这样好吗?我的问题是,如果可以将blog_id存储为字符串属性而不是原始整数ID?我这样做是因为它是一个iOS应用程序,并且长整数ID导致我的iOS客户端出现整数溢出错误。
此类查询会不会出现问题?
答案 0 :(得分:0)
我能看到的唯一问题是Comment.blog_id
是一个字符串而blog_id
是一个数字,所以你要比较一个字符串和一个int。
如果blog_id
是一个字符串,那么您就是安全的。
ndb / Datastore索引的工作方式,您的查询将与字符串或整数相同(性能明智)。