Всем доброго времени суток.
Возникла у меня при написании одной программы, тривиальная, казалось бы, задача.
Есть довольно большое количество некоторых записей. Текстовое значение, потенциально текстовые же параметры.
Необходимо из них организовать в дерево (т.е. дать возможность пользователю их организовывать в дерево), и, к тому же, дать тому же пользователю на каждый элемент навесить произвольное количество тегов.
Соответственно, необходимо эту структуру как-то хранить (как в памяти, так и на диске), и как-то с ней работать - производить поиск записей, поиск по набору тегов, получать список всех тегов etc. Причём желательно производить все операции максимально быстро и эффективно даже при большом количестве записей.
И если вопрос сохранения не вызывает у меня особых сомнений - JSON:
[ ...
{
"value": "foo",
"param1": "bar",
"param2": 13,
"path": "/dir/dir2",
"tags": [ "tag1", "tag2", "tag3" ]
}
...
]
То вот со всем остальным я нахожусь в некотором затруднении. Можно, конечно, считать JSON в аналогичную структуры и перебором искать по ней, но скорость такого решения будет оставлять желать лучшего.
Почему я говорю, что задача вроде бы тривиальная? Просто подобное хранение данных довольно распространено. Те же блог-движки подобным образом хранят заметки в блоге. Однако я нигде не смог неайти информации по реализации подобного хранения данных.
Буду очень благодарен, если более опытные форумчане подскажут, "куда рыть".
Спасибо.