Я разрабатываю приложение для Google App Engine, которое использует BigTable для своего хранилища данных.
Это приложение о совместном написании истории. Это очень простой хобби-проект, над которым я работаю только ради удовольствия. Это с открытым исходным кодом, и вы можете увидеть его здесь: http://story.multifarce.com/
Идея состоит в том, что любой может написать абзац, который затем должен быть подтвержден двумя другими людьми. История может также быть разветвленной в любом абзаце, так что другая версия истории может продолжаться в другом направлении.
Представьте себе следующую структуру дерева:
Каждое число будет абзацем. Я хочу иметь возможность выбирать все абзацы в каждой уникальной сюжетной линии. По сути, эти уникальные сюжетные линии (2, 7, 2); (2, 7, 6, 5); (2, 7, 6, 11) и (2, 5, 9, 4). Игнорируйте, что node "2" появляется дважды, я просто взял диаграмму древовидной структуры из Википедии.
Я также составил схему предлагаемого решения: https://docs.google.com/drawings/edit?id=1fdUISIjGVBvIKMSCjtE4xFNZxiE08AoqvJSLQbxN6pc&hl=en
Как настроить структуру, производительность эффективна как для записи, так и для чтения?