Mi chiedo se qualcuno possa fornire alcuni consigli concettuali su un modo efficiente per creare un modello di dati per realizzare il semplice sistema descritto di seguito. Sono un po 'nuovo a pensare in modo non relazionale e voglio provare a evitare qualsiasi insidia evidente. A mio avviso, un principio fondamentale è che "lo storage è economico, non preoccuparti della duplicazione dei dati", come potresti fare con un RDBMS normalizzato.Consigli per la modellazione dei dati per il sistema di tagging blog su Google App Engine
Quello che mi piacerebbe modello è:
Un blog articolo che può essere dato 0-n tag. Molti articoli del blog possono condividere lo stesso tag. Quando si recuperano dati si desidera consentire il recupero di tutti gli articoli che corrispondono a un tag. In molti modi molto simile all'approccio adottato qui in StackOverflow.
La mia mentalità normale sarebbe quella di creare una relazione molti-a-maggio tra tag e articoli di blog. Tuttavia, sto pensando nel contesto di GAE che questo sarebbe costoso, anche se ho visto esempi di ciò che è stato fatto.
Forse utilizzando una ListProperty contenente ogni tag come parte delle entità dell'articolo e un secondo modello di dati per tenere traccia dei tag man mano che vengono aggiunti ed eliminati? In questo modo non c'è bisogno di alcuna relazione e ListProperty consente comunque query in cui qualsiasi corrispondenza dell'elemento di lista restituirà risultati.
Qualche suggerimento sul modo più efficiente per avvicinarsi a questo su GAE?
Solo l'approccio che stavo per suggerire, tranne che non ho trovato il tempo. :) –