MFC を使用して CAD アプリケーションで遊んでいます。ドキュメント (モデル) を SQLite データベースとして保存するとよいと考えていました。
利点:
- ファイル形式の変更は避けます (SQLite が処理します)。
- 無料のクエリ エンジン
- 元に戻すスタックが簡素化されました (テーブル名、列名、新しい値など...)
意見?
これは良い考えです。Sqlite は非常に快適に使用できます。
しかし、リレーショナル データベースにデータを保存することは、車をガレージに入れ、分解し、それぞれの部品を入れて駐車するようなものであるという古い自明の理を思い出してください (Google からデータの元の場所について信頼できる回答を得ることができません)。ラベル付きのキャビネットに。
名前で相互に参照するポイント、ライン、およびセグメントで構成されるジオメトリック データは、データベース テーブルに格納するのに適しています。しかし、サブコンポーネントの階層を持つ複合オブジェクトを使い始めると、シリアル化を使用して 1 回の呼び出しでモデルを保存/ロードするためだけに必要なコードが大幅に少なくなる可能性があります。
ですから、それも良い考えでしょう。
しかし、MFC でのシリアライゼーションは、たとえば C# でのシリアライゼーションほど効果的ではないため、バランスを考えて SQL を使用します。
これは素晴らしいアイデアですが、始める前にいくつかの推奨事項があります。
各データベースは、データベース内のファイルを説明するテーブルを持つなど、ファイル名以外の方法で一意に識別できるように注意してください。
独自の例を作成する前に、すでに利用可能なMFCベースの例とラッパーのいくつかを見てください。私が見たものは、より良い結果を生み出すためにそれぞれを借りていました。Google:MFCSQLiteラッパー。
SQLiteデータベースの使用は、状態を維持するのにも役立ちます。SQLiteに含まれている機能と欠落している機能を念頭に置いて、どのように管理するかを事前に検討してください。
また、データベーステーブル構造を他のSQLデータベースシステムに簡単にエクスポートできるようにするだけでなく、バックアップシステムに簡単に拡張できるようにすることで、アプリケーションをWebに拡張する方法についても考えることができます。