База данных или формат справочной системы? - PullRequest
1 голос
/ 26 июля 2010

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

Есть какие-нибудь идеи по поводу такой вещи?

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

1 Ответ

1 голос
/ 26 июля 2010

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

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

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

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

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

...