От одного наиболее эффективного -до -множества взаимосвязей в хранилище данных Google App Engine?

Извините, если этот вопрос слишком прост; Я только перехожу в 9 класс.

Я пытаюсь узнать о дизайне базы данных NoSQL. Я хочу разработать модель хранилища данных Google, которая сводит к минимуму количество операций чтения/записи.

Вот игрушечный пример для сообщения в блоге и комментариев в отношениях от одного -до -многих. Что эффективнее -хранить все комментарии в StructuredProperty или использовать KeyProperty в модели комментариев?

Опять же, цель состоит в том, чтобы свести к минимуму количество операций чтения/записи в хранилище данных. Вы можете сделать следующие предположения:

  • Комментарии не будут извлекаться независимо от соответствующей записи в блоге. (Я подозреваю, что это делает StructuredProperty наиболее предпочтительным.)
  • Комментарии необходимо сортировать по дате, рейтингу, автору и т. д. (Подсвойства в хранилище данных нельзя индексировать, поэтому, возможно, это может повлиять на производительность?)
  • Как посты в блоге, так и комментарии могут быть отредактированы (или даже удалены )после их создания.

Использование StructuredProperty:

from google.appengine.ext import ndb

class Comment(ndb.Model):
    various properties...

class BlogPost(ndb.Model):
    comments = ndb.StructuredProperty(Comment, repeated=True)
    various other properties...

Использование KeyProperty:

from google.appengine.ext import ndb

class BlogPost(ndb.Model):
    various properties...

class Comment(ndb.Model):
    blogPost = ndb.KeyProperty(kind=BlogPost)
    various other properties...

Не стесняйтесь поднимать любые другие соображения, связанные с эффективным представлением отношения один -к -многим в отношении минимизации количества операций чтения/записи в хранилище данных.

Спасибо.

16
задан Pascal Bourque 13 August 2012 в 15:10
поделиться