Domanda

Sto giocando con un'applicazione CAD usando MFC. Stavo pensando che sarebbe stato bello salvare il documento (modello) come database SQLite.

I vantaggi:

  • Evito i cambiamenti nel formato dei file (SQLite se ne occupa)
  • Motore di query gratuito
  • Lo stack di annullamento è semplificato (nome tabella, nome colonna, nuovo valore e così via ...)

Opinioni?

È stato utile?

Soluzione

Questa è una buona idea. Sqlite è molto piacevole con cui lavorare!

Ma ricorda il vecchio truismo (non riesco a ottenere da Google una risposta autorevole da dove proviene originariamente) che archiviare i tuoi dati in un database relazionale è come parcheggiare la tua auto guidandola nel garage, smontandola e mettere ogni pezzo in un armadio etichettato.

I dati geometrici, costituiti da punti, linee e segmenti che si riferiscono l'uno all'altro per nome, sono un buon candidato per l'archiviazione nelle tabelle del database. Ma quando inizi ad avere oggetti compositi, con un'eredità di sottocomponenti, potrebbe essere necessario molto meno codice solo per usare la serializzazione e archiviare / caricare il modello con una sola chiamata.

Quindi anche questa sarebbe una buona idea.

Ma la serializzazione in MFC non è tanto una vittoria quanto lo è, diciamo, in C #, quindi a conti fatti andrei avanti e userei SQL.

Altri suggerimenti

Questa è un'ottima idea ma prima di iniziare ho alcuni consigli:

  • Fai attenzione che ogni database sia identificabile in modo univoco in qualche modo oltre al nome del file come avere una tabella che descrive il file all'interno del database.

  • Dai un'occhiata ad alcuni esempi e wrapper basati su MFC già disponibili prima di crearne uno tuo. Quelli che ho visto avevano preso in prestito ciascuno per creare un risultato migliore. Google: wrapper SQLite MFC.

  • L'uso del database SQLite è utile anche per mantenere lo stato. Pensa in anticipo a come gestiresti tenendo presente quali funzionalità sono incluse e mancanti in SQLite.

  • Ora puoi anche pensare a come estendere la tua applicazione al web assicurandoti che la struttura della tabella del tuo database sia facilmente esportabile su altri sistemi di database SQL, oltre che abbastanza facile da estendere a un sistema di backup.

  • / p>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top