2010-07-25 7 views
1

Je suis en train de mettre en place un système d'aide pour mon application. Son écrit en C et Gtk +. L'aide est divisée en livres. Chaque livre est juste un tas de pages HTML avec des ressources. Le problème que j'ai rencontré est que chaque livre est ~ 30M (en utilisant le port WebKit Gtk pour l'afficher). Après zipping, il devient ~ 7M, mais le document d'ouverture devient extrêmement lent :(Donc je pense à utiliser un type de bibliothèque capable de me fournir: création d'index de recherche, liste de documents, arborescence (système de fichiers a-la) et compression bien sûr.Base de données ou format pour le système d'aide?

toutes les idées sur une telle chose?

PS ne sont pas toutes les exigences sont « must have », je suis encore à explorer cette partie et pas sûr que tous sont tenues, si elle va manquer quelque chose, ce sera ok.

+0

Lorsque vous laissez les livres non compressés, vous n'avez aucun problème de performances? Alors, honnêtement, pourquoi ne les laissez-vous pas sans compression? –

+0

Oui, y at-il une raison pour laquelle il doit être compressé? –

+0

Pour être honnête, sauf mon souhait de faire sa taille plus petite et un désir esthétique folle de faire des livres à dossier unique, il n'y a pas de raisons. – Daniel

Répondre

1

SQLite prend en charge les bases de données compressées (en lecture seule), et est idéal pour une base de données de l'utilisateur.

Cependant, vous devriez penser à la nécessité de compresser. Les disques durs sont si grands ces jours-ci qu'une bibliothèque de 700 Mo sur un ordinateur n'est pas trop inquiétante.

Alternativement, vous pouvez opter pour Firebird, qui pour autant que je sache ne supporte pas une base de données compressée, mais vous pouvez compresser vos pages individuelles, auquel cas vous devrez construire votre propre index pour la recherche de texte intégral - que je considère comme un travail inutile. Firebird prend en charge une fonctionnalité appelée "Embedded Server" qui est spécialement conçue pour le déploiement avec des applications Windows.

Je pense que vous devriez faire une liste ordonnée, des caractéristiques que vous voulez, puis choisissez les deux ou trois premiers, et faites-le avant d'avancer. Par exemple. Le faire dans une base de données est quelque chose que vous voudriez faire, avant de penser à la compression.

+0

Je ne savais pas que SQLite peut fonctionner avec des bases de données compressées, mais l'idée est intéressante. Merci de l'avoir essayé :) Firebird n'est pas le bon choix car il nécessite un serveur comme je le sais. – Daniel

+0

En fait, Firebird ne nécessite pas de serveur, juste mis à jour ma réponse. –

+0

SQLite résolu le problème :) – Daniel