안녕하세요, 저는 완벽하게 답변 된 키 사용과 관련하여 이전에 질문했습니다.Google App Engine (Python)의 키 또는 ID
그러나 지금은 내 모델에 대한 키를 만들고 사용하는 것이 길 일지 궁금해졌습니다. 내 iPhone App 녀석이 데이터베이스에 저장하기 위해 INT가 필요하다는 말을 들었습니다. Keys에서 작업하는 Python 코드를 얻었으므로 이제 추적해야 할 수도 있습니다.
내 iPhone 앱이 큰 변경없이 사용할 수있는 자동 생성 키 이름과 전체 키 생성에 대한 의견을 듣고 싶습니다.
class User(db.Model):
id = db.StringProperty()
name = db.StringProperty()
image = db.BlobProperty(default=None)
class Book(db.Model):
image = db.BlobProperty()
date_added = db.DateTimeProperty(auto_now_add=True)
is_active = db.BooleanProperty(default=True)
class BookUser(db.Model):
book = db.ReferenceProperty(Book)
user = db.ReferenceProperty(User)
is_active = db.BooleanProperty(default=True)
을 그리고 난 키 (아래)를 사용하여 처리 된 방법 :
여기 내 모델입니다. 사용자가 로그인 할 때마다 BookUser 레코드가 아직없는 경우 만들어집니다. 이 모든 데이터를 iPhone에 보내야합니다. ID를 데이터베이스에 저장해야합니다. 아래 내용은 iPhone 개발자에게 "빨라라"고 말해야한다고 생각하는 꽤 견고한 핸드폰입니다.
아니면 아래의 방법으로 해결할 수 있습니까?
### Get the Users Details
user_id = 1
user = User.get_by_key_name(user_id)
user_key = user.key().name()
### Get the latest active Book
book = Book.all().filter('is_active =', True).get()
book_key = book.key().name()
### Get latest Book for this User
bookuser_key_name = "%s:%s" % (str(book_key), str(user_key))
bookuser = BookUser.get_or_insert(bookuser_key_name)
bookuser.card = card
bookuser.user = user
bookuser.put()
먼저 "iPhone App Guy"에게 INT를 사용하라고 말한 이유를 묻습니다. –
용어에 대한 참고 사항 : 모든 엔터티에는 키가 있습니다. id 또는 key_name은 키의 일부입니다. – geoffspear