Сохранение модели MFC в качестве базы данных SQLite - PullRequest
1 голос
/ 30 сентября 2008

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

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

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

Мнения

Ответы [ 2 ]

3 голосов
/ 30 сентября 2008

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

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

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

Так что это тоже было бы неплохо.

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

2 голосов
/ 06 ноября 2008

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...