Полимодель по предложению App Engine - PullRequest
1 голос
/ 11 апреля 2011

Я разрабатываю модель для системы публикации, в которой запись содержит изображение с комментарием или без него.Пользователь может ответить на него либо в виде комментария, либо в виде записи изображения.

Поскольку у ImageEntry может быть больше свойств, я разработал этот дизайн с помощью Polymodel.Не уверен, что это лучший способ сделать это.С точки зрения хранения, CommentEntry меньше, чем ImageEntry?

Любые предложения будут хорошими.

class Entry(polymodel.PolyModel):
  comment    = db.TextProperty()
  reply_to   = db.SelfReferenceProperty() # reference to the entry
  created_at = properties.DateTimeProperty(auto_now_add=True)
  updated_at = properties.DateTimeProperty(auto_now=True)

class CommentEntry(Entry):
  created_by = db.ReferenceProperty(User, collection_name='comment_entries')

class ImageEntry(Entry):
  created_by = db.ReferenceProperty(User, collection_name='image_entries')
  image_url  = db.LinkProperty(indexed=False)
  slug       = db.StringProperty(indexed=False)

1 Ответ

1 голос
/ 12 апреля 2011

эта модель будет работать нормально, и да, CommentEntry будет меньше, чем ImageEntry от того же пользователя, если у ImageEntry есть URL-адрес изображения и / или слаг.

однако я бы сделал это намногоПроще упростить помещение в Entry созданных_объектов, image_url и slug и полностью избавиться от CommentEntry и ImageEntry.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 100% * * * * * * * * * * * * * 100% * по умолчанию * 100% *. Вы можете оплатить стоимость свойств image_url и slug только при заполнении их для записей изображений1007 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...