Псевдоним пользователя - PullRequest
1 голос
/ 12 декабря 2011

У меня есть 5 типов объектов в приложении, скажем, A, B, C, D, E

Приложение перечисляет объекты всех типов, где отображается их имя, созданный пользователь и др. Информация.

Теперь, чтобы иметь возможность отображать имя пользователя в каждом списке объектов, у меня есть несколько вариантов

1) Сохраните ключ сущности USER в каждом объекте, а затем, когда я получаю, скажем, список объектов типа A, затем также извлекаю ключи пользователя и их имена и затем присоединяю их к объектам типа A

2) Когда создается объект любого типа, также сохраните свойство «Имя», которое будет именем пользователя, создавшего объект (Yikes подходит ИМХО, что если пользователь изменит свое имя позже;)

Но я не уверен, что оба способа верны выше! Я ищу ответ от кого-то, кто мог столкнуться с подобной проблемой

Ответы [ 2 ]

2 голосов
/ 12 декабря 2011

На самом деле вы уже ответили сами, вариант 2 не рекомендуется, поскольку пользователь может изменить свое имя пользователя, и каскадное изменение (вручную) в хранилище данных не является хорошим выбором.

0 голосов
/ 12 декабря 2011

http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html#ReferenceProperty

Пример по ссылке:

class Author(db.Model):
    name = db.StringProperty()

class Story(db.Model):
    author = db.ReferenceProperty(Author)

story = db.get(story_key)
author_name = story.author.name

author = db.get(author_key)
stories_by_author = author.story_set.get()

Опция1 может быть легко реализована с помощью ReferenceProperty. Никакого дополнительного кода не требуется, если производительность не является вашей главной задачей.

Я не использую Java в Google App Engine, но механизм приложений Google также поддерживал необходимые вам объектные отношения.

http://code.google.com/appengine/docs/java/datastore/jdo/relationships.html#Owned_One_to_One_Relationships

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