Banco de dados ou formato para sistema de ajuda?
-
29-09-2020 - |
Pergunta
Estou implementando um sistema de ajuda para o meu aplicativo.É escrito em C e GTK +. Ajuda é dividida em livros.Cada livro é apenas um monte de páginas HTML com recursos. O problema que eu encontrei é que cada livro é ~ 30m (usando a porta WebKit GTK para exibi-la).Depois de fechar, ele se torna ~ 7m, mas o documento de abertura torna-se extremamente lento :( Então estou pensando em usar algum tipo de biblioteca capaz de me fornecer: Texto completo Index Index Index, listagem de documentos, Estrutura de árvore (sistema de arquivos A-LA)e compressão, claro.
Alguma idéia sobre essa coisa?
p.s.Nem todos os requisitos são "devem ter", ainda estou explorando essa parte e não tenho certeza de que todos eles são necessários, por isso, se sentirá falta de algo, ficará bem.
Solução
sqlite suporta bancos de dados compactados (readonly) e é ideal para um banco de dados de um usuário.
No entanto, você deve pensar sobre a necessidade de comprimir. Discos rígidos são tão grandes nos dias de hoje que uma biblioteca de 700MB em um computador não é muito preocupante.
Alternativamente, você poderia ir para firebird , o que sei que não suporta um compactado banco de dados, mas você pode compactar suas páginas individuais, caso em que precisaria construir seu próprio índice para pesquisa de texto completo - que eu consideraria trabalho desnecessário.
firebird suporta um recurso chamado " Servidor incorporado " que é especialmente projetado para implantação com aplicativos do Windows.
Eu acho que você deve fazer uma lista ordenada, dos recursos desejados, então escolha os dois primeiros ou três, e faça isso antes de avançar. Por exemplo. Obtê-lo em um banco de dados é algo que você gostaria de fazer, antes de pensar em compressão.