Sto costruendo un'applicazione in Google App Engine (Java), dove gli utenti possono rendere i messaggi e sto pensando ad aggiungere tag a questi posti, così avrò qualcosa di simile:datastore del motore dell'app: come implementare post e tag senza join?
nel soggetto del messaggio:
public List<Key> tags;
in un'entità tag:
public List<Key> posts;
sarebbe facile da interrogare, per esempio, tutti i messaggi con un determinato tag, ma come ho potuto ottenere tutti i post che ha una lista di tag? Potrei fare una query per ogni tag e quindi fare un'intersezione dei risultati, ma forse c'è un modo migliore ... perché sarebbe lento con un sacco di post.
Un'altra cosa che può essere più difficile è avere un post, ottenere i posti che hanno in comune i tag ordinati dal numero di tag comuni, così ho potuto ottenere i messaggi "simili" a questo, in qualche modo.
Bene, con i join questo sarebbe molto più semplice, ma sto iniziando con il motore di app e non posso davvero pensare a un buon modo per sostituire i join.
Grazie!
non ho saputo che quando ho recuperato un'entità con una proprietà lista tutte le entità di tale elenco è stato anche recuperato ... E 'in questo modo? Quindi rimuoverò l'elenco Post. Inoltre non ho saputo che avrei potuto interrogare in quel modo su una proprietà lista: q.setFilter ("tag" == 'Java' && "tag == 'appengine'"); Questa è davvero una buona notizia :) Grazie Peter. – Damian
Le entità pieno nelle liste potrebbero o non potrebbero ottenere inverosimile seconda esattamente come implementare le vostre entità e se si sta utilizzando JDO o JPA (leggiamo di prendere gruppi in JDO per esempio) ma anche se solo dovesse caricare le chiavi, alcune migliaia di chiavi inizieranno a sommarsi se le muovi continuamente avanti e indietro. –