Me pregunto si alguien podría proporcionar algún consejo conceptual sobre una forma eficiente de construir un modelo de datos para lograr el sistema simple que se describe a continuación. Soy algo nuevo para pensar de una manera no relacional y quiero intentar evitar cualquier trampa obvia. Tengo entendido que un principio básico es que "el almacenamiento es barato, no se preocupe por la duplicación de datos" como podría hacerlo en un RDBMS normalizado.Asesoramiento de modelado de datos para el sistema de etiquetado de blogs en Google App Engine
Lo que me gustaría es para modelar:
Un artículo de blog que se puede dar 0-n etiquetas. Muchos artículos de blog pueden compartir la misma etiqueta. Al recuperar datos, le gustaría permitir la recuperación de todos los artículos que coinciden con una etiqueta. En muchos sentidos, muy similar al enfoque adoptado aquí en stackoverflow.
Mi mentalidad normal sería crear una relación de muchos a mayos entre las etiquetas y los artículos del blog. Sin embargo, estoy pensando en el contexto de GAE que esto sería costoso, aunque he visto ejemplos de esto.
¿Quizás usando una propiedad de lista que contenga cada etiqueta como parte de las entidades del artículo, y un segundo modelo de datos para seguir las etiquetas a medida que se agregan y eliminan? De esta forma, no hay necesidad de ninguna relación, y ListProperty aún permite consultas en las que cualquier comparación de elemento de lista arrojará resultados.
¿Alguna sugerencia sobre la forma más eficiente de abordar esto en GAE?
Solo el enfoque que iba a sugerir, excepto que no encontré tiempo. :) –