Интересно, кто-нибудь может дать несколько концептуальных советов по эффективному способу построения модели данных для создания простой системы, описанной ниже. Я немного новичок в мышлении нереляционным образом и хочу попытаться избежать любых очевидных ошибок. Насколько я понимаю, основной принцип заключается в том, что «хранилище дешево, не беспокойтесь о дублировании данных», как это может быть в обычной СУБД.
Что я хотел бы смоделировать это:
Статья в блоге, которой можно присвоить 0-н тегов. Многие статьи блога могут использовать один и тот же тег. При получении данных хотелось бы разрешить поиск всех статей, соответствующих тегу. Во многих отношениях очень похож на подход, принятый здесь в stackoverflow.
Мое обычное мышление - создание отношений между тегами и статьями блога. Тем не менее, я думаю, что в контексте GAE это будет дорого, хотя я видел примеры этого.
Возможно, использовать ListProperty, содержащий каждый тег как часть сущностей статьи, и вторую модель данных для отслеживания тегов по мере их добавления и удаления? Таким образом, нет необходимости в каких-либо отношениях, и ListProperty по-прежнему разрешает запросы, при которых любое соответствие элемента списка будет возвращать результаты.
Какие-нибудь предложения по наиболее эффективному способу подойти к этому на GAE?