Сохранение модели MFC в виде базы данных SQLite

StackOverflow https://stackoverflow.com/questions/153838

  •  03-07-2019
  •  | 
  •  

Вопрос

Я играю с CAD-приложением, использующим MFC.Я подумал, что было бы неплохо сохранить документ (модель) как базу данных SQLite.

Преимущества:

  • Я избегаю изменения формата файла (SQLite заботится об этом)
  • Бесплатный механизм запросов
  • Упрощен стек отмены (имя таблицы, название столбца, новое значение и так далее ...)

Мнения?

Это было полезно?

Решение

Это прекрасная идея.С Sqlite очень приятно работать!

Но помните старую истину (я не могу получить авторитетный ответ от Google о том, откуда она взялась), что хранить ваши данные в реляционной базе данных - все равно что парковать машину, загоняя ее в гараж, разбирая и складывая каждую деталь в шкаф с надписью.

Геометрические данные, состоящие из точек, линий и сегментов, которые ссылаются друг на друга по имени, являются хорошим кандидатом для хранения в таблицах базы данных.Но когда вы начинаете создавать составные объекты с иерархией подкомпонентов, может потребоваться намного меньше кода только для использования сериализации и сохранения / загрузки модели одним вызовом.

Так что это тоже было бы отличной идеей.

Но сериализация в MFC - это далеко не такой выигрыш, как, скажем, в C #, поэтому в целом я бы пошел дальше и использовал SQL.

Другие советы

Это отличная идея, но прежде чем вы начнете, у меня есть несколько рекомендаций:

  • Будьте осторожны, чтобы каждая база данных была уникальным образом идентифицирована каким-либо образом, помимо имени файла, например, наличием таблицы, описывающей файл в базе данных.

  • Взгляните на некоторые из уже доступных примеров и оберток на основе MFC, прежде чем создавать свои собственные.Те, которые я видел, были заимствованы для каждого из них, чтобы добиться лучшего результата.Google:Оболочка MFC SQLite.

  • Использование базы данных SQLite также полезно для поддержания состояния.Подумайте заранее о том, как бы вы справились, имея в виду, какие функции включены и отсутствуют в SQLite.

  • Теперь вы также можете подумать о том, как вы можете распространить свое приложение на Веб, убедившись, что структура таблиц вашей базы данных легко экспортируется в другие системы баз данных SQL, а также достаточно легко распространяется на систему резервного копирования.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top