База данных или формат справочной системы?

Я внедряю справочную систему для моего приложения. Это написано на C и Gtk+. Помощь делится на книги. Каждая книга - это просто набор HTML-страниц с ресурсом. Проблема, с которой я столкнулся, заключается в том, что каждая книга имеет размер ~30M (для ее отображения используется порт WebKit Gtk). После архивирования оно становится ~7M, но открытие документа становится очень медленным:(Поэтому я подумываю об использовании какой-то библиотеки, способной предоставить мне: создание индекса полнотекстового поиска, листинг документа, древовидную структуру (а-ля файловая система) и сжатие конечно.

Есть идеи на эту вещь?

PS Не все требования "должны иметь", я все еще изучаю эту часть и не уверен, что все они требуются, поэтому, если что-то пропустит, все будет хорошо.

1 ответ

Решение

SQLite поддерживает сжатые базы данных (только для чтения) и идеально подходит для однопользовательской базы данных.

Тем не менее, вы должны думать о необходимости сжатия. Жесткие диски в наши дни настолько велики, что 700-мегабайтная библиотека на компьютере не слишком беспокоит.

В качестве альтернативы вы могли бы пойти на Firebird, который, насколько я знаю, не поддерживает сжатую базу данных, но вы могли бы сжать свои отдельные страницы, и в этом случае вам нужно будет создать свой собственный индекс для полнотекстового поиска - что я бы сделал считают ненужной работу.

Firebird поддерживает функцию под названием " Встроенный сервер", которая специально разработана для развертывания с приложениями Windows.

Я думаю, что вы должны составить упорядоченный список желаемых функций, а затем выбрать два-три лучших и сделать это, прежде чем продолжить. Например, вам нужно сделать это в базе данных, прежде чем вы подумаете о сжатии.

Другие вопросы по тегам