Я строю приложение в Google App Engine (Java), где пользователи могут принимать сообщения, и я имею в виду в добавлении тегов на эти посты, так что я буду иметь что-то вроде этого:App engine datastore: Как реализовать сообщения и теги без соединений?
в сущности сообщение:
public List<Key> tags;
в сущности категории:
public List<Key> posts;
было бы легко запросить, например, все сообщения с определенным тегом, но как я могу получить все сообщения, которые имеют список тегов? Я мог бы сделать запрос для каждого тега, а затем сделать пересечение результатов, но, возможно, есть лучший способ ... потому что это будет медленным с множеством сообщений.
Еще одна вещь, которая может быть сложнее, состоит в том, чтобы иметь пост, получать сообщения, которые имеют общие теги, упорядоченные по количеству общих тегов, поэтому я мог бы получить «похожие» сообщения этому.
Ну, с объединениями это было бы намного проще, но я начинаю с движка приложения и не могу действительно думать о хорошем способе заменить соединения.
Спасибо!
Я не знал, что когда я получил объект с свойством списка, все объекты в этом списке также были извлечены ... Это так? Так что я удалю список сообщений. Я также не знал, что могу запросить этот способ над свойством списка: q.setFilter ("tags" == 'Java' && "tags == 'appengine'"); Это действительно хорошая новость :) Спасибо, Питер. – Damian
Полные объекты в списках могут или не могут быть получены в зависимости от того, как вы реализуете свои сущности и используете ли вы JDO или JPA (например, о группах выборки в JDO). Но даже если вы просто загружали ключи, несколько тысяч ключей начнут складываться, если вы постоянно перемещаете их туда и обратно. –