Question

Je joue avec une application de CAO utilisant MFC. Je pensais que ce serait bien d’enregistrer le document (modèle) en tant que base de données SQLite.

Avantages:

  • J'évite les changements de format de fichier (SQLite s'en occupe)
  • Moteur de requête gratuit
  • La pile d'annulation est simplifiée (nom de la table, nom de la colonne, nouvelle valeur et ainsi de suite ...)

Des opinions?

Était-ce utile?

La solution

C'est une bonne idée. Il est très agréable de travailler avec Sqlite!

Mais rappelez-vous le vieil adage (je ne peux pas obtenir de réponse fiable de Google sur son origine), qui consiste à stocker vos données dans une base de données relationnelle, c'est comme garer sa voiture en la conduisant dans le garage, la désassembler et mettre chaque pièce dans une armoire étiquetée.

Les données géométriques, composées de points, de lignes et de segments se référant les uns aux autres par leur nom, constituent un bon candidat pour le stockage dans les tables de base de données. Mais lorsque vous commencez à avoir des objets composites, avec une hiérarchie de sous-composants, il peut s’avérer beaucoup moins de code d’utiliser simplement la sérialisation et de stocker / charger le modèle avec un seul appel.

Ce serait donc aussi une bonne idée.

Mais la sérialisation dans MFC n’est pas aussi gagnante qu’elle existe, disons, en C #, c’est pourquoi, dans l’ensemble, j’utiliserais SQL.

Autres conseils

C’est une excellente idée, mais avant de commencer, j’ai quelques recommandations:

  • Veillez à ce que chaque base de données soit identifiable de manière unique en plus du nom de fichier, par exemple une table décrivant le fichier dans la base de données.

  • Jetez un coup d'œil à certains exemples et wrappers basés sur MFC déjà disponibles avant de créer le vôtre. Ceux que j'ai vus avaient emprunté sur chacun pour créer un meilleur résultat. Google: MFC SQLite Wrapper.

  • L'utilisation de la base de données SQLite est également utile pour maintenir l'état. Réfléchissez bien à la manière dont vous géreriez en gardant à l'esprit les fonctionnalités incluses et manquantes dans SQLite.

  • Vous pouvez également envisager la possibilité d'étendre votre application au Web en vous assurant que la structure de votre table de base de données est facilement exportable vers d'autres systèmes de base de données SQL, ainsi que suffisamment facile pour être étendue à un système de sauvegarde.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top