Estoy desarrollando una aplicación para Google App Engine que usa BigTable para su almacén de datos.Estructuras de árbol en una base de datos nosql
Es una aplicación sobre cómo escribir una historia en colaboración. Es un proyecto de hobby muy simple en el que estoy trabajando solo por diversión. Es de código abierto y lo puedes ver aquí: http://story.multifarce.com/
La idea es que cualquier persona puede escribir un párrafo, que luego debe ser validado por otras dos personas. Una historia también se puede ramificar en cualquier párrafo, de modo que otra versión de la historia pueda continuar en otra dirección.
imaginar la siguiente estructura:
Cada número sería un párrafo. Quiero poder seleccionar todos los párrafos en cada línea de historia única. Básicamente, esas historias únicas son (2, 7, 2); (2, 7, 6, 5); (2, 7, 6, 11) y (2, 5, 9, 4). Ignore que el nodo "2" aparece dos veces, solo tomé un diagrama de estructura de árbol de Wikipedia.
También hice un diagrama de una solución propuesta: https://docs.google.com/drawings/edit?id=1fdUISIjGVBvIKMSCjtE4xFNZxiE08AoqvJSLQbxN6pc&hl=en
¿Cómo puedo configurar una estructura es un rendimiento eficiente tanto para la escritura, pero lo más importante para la lectura?
Sí, ya elegí no usar listas de adyacencia (costo de lectura demasiado alto) o conjuntos anidados (costo de escritura demasiado alto). Tu solución suena bien. Supongo que tenía miedo de mantener una lista de 200 claves en una entidad, pero eso no debería ser un problema, supongo. De hecho, ya implementé mi solución y funciona bien, sin problemas de rendimiento, por lo que probablemente la use por un tiempo y vea si tiene más sentido pasar a su solución. – Blixt
Gracias por la explicación, es muy útil. –