Я хочу написать программное обеспечение для управления рецептами. Рецепты являются действительными автономными файлами XML. Они содержат строковые и целочисленные значения и данные изображения (в представлении base64). Пользователь должен иметь возможность создавать / открывать, редактировать и сохранять рецепты. Теперь у меня есть опасения по поводу управления файлами и их эффективности (скорость и память).
Как мне управлять всеми рецептами? Я думаю, что я мог бы либо сохранить их все как простые XML-файлы в папке, либо поместить их в один какой-либо библиотечный файл. Первый подход может быть быстрее при запуске, так как рецепты загружаются, когда пользователь нажимает на них, например, в QTreeView. Второй подход может быть более эффективным и быстрым, потому что вся библиотека будет храниться в памяти, хотя может быть сложнее изменить ее содержимое.
Я хочу использовать DOM для обработки XML-файлов — или QXmlStreamReader / writer будет лучшим выбором здесь?
В любом случае мне пришлось бы управлять данными рецепта, используя уникальные идентификаторы, например, для нескольких разных рецептов «печенья». При использовании первого подхода из вопроса 1. я бы использовал имена файлов на основе такого идентификатора. Есть ли удобные способы создания уникальных идентификаторов? Потому что при использовании целых инкрементов я должен отслеживать, какие числа уже используются.
Я использую файлы XML для передачи рецептов в моей программе рецептов. У меня есть варианты для импорта и экспорта с использованием XML.
Я использую базу данных для хранения рецептов. Я не использую файлы данных XML для хранения рецептов. Я оставлю управление данными в базе данных (я не трачу свое время на написание и отладку базы данных).
Для хранения данных существуют более эффективные форматы файлов, чем XML. Кроме того, вы можете создать «индексные таблицы», которые обеспечивают сортированный и более эффективный доступ к файлам, чем необходимость всегда анализировать XML-файл.
Других решений пока нет …