Самый эффективный способ хранения, записи и чтения базы данных предметов. - PullRequest
0 голосов
/ 30 июля 2011

Android-приложение, которое я программирую, будет иметь базу данных продуктов, скажем, 150-250 из них.Каждый элемент будет иметь такие свойства, как имя, стоимость, номер EAN и т. Д.

Моя первая идея состояла в том, чтобы сохранить все в xml-файле, который загружается при запуске приложения и затем заполняется в массив / картутовары.Продукты должны быть доступны для просмотра в виде списка, и пользователь должен иметь возможность добавлять больше этих продуктов через приложение.Большинство их свойств практически никогда не меняются, но некоторые из них меняются как всегда.Я не знаю, будет ли хорошей идеей изменить свойства как в массиве product, так и в xml, а затем сохранить в xml-файле, когда что-то изменится одновременно.Может быть, сериализация будет лучшим вариантом?Хотя в любом случае я полагаю, что файл не нужно записывать для каждого изменения, я думаю, это можно сделать, например, когда приложение закрывается или через определенные промежутки времени или что-то в этом роде (я не совсем уверен в этом, так как я новичок в разработкемобильные приложения, и я не хочу, чтобы какие-либо данные были потеряны).Может быть, было бы неплохо каким-то образом разделить их «статические» и «динамические» свойства?

Я совершенно заблудился здесь.Любое предложение относительно того, что было бы хорошим способом пойти?

Мы искали на stackoverflow и Google, но на самом деле не смогли найти что-то полезное.

Ответы [ 2 ]

3 голосов
/ 30 июля 2011

Вы должны использовать SQLite ContentProvider.Таким образом, вы сможете обновлять свои продукты независимо от других компонентов (видов деятельности или услуг).Все заинтересованные стороны могут получать уведомления при изменении даты.

Также есть поддержка ContentProviders в ListView (через CursorAdapter), и вы также получаете бесплатную поддержку от Loaders (через CursorLoader).

ИПомимо всего этого, у вас есть более эффективный способ хранения данных (т.е. вам не нужно перезаписывать XML-файл при каждом сохранении).SQLite позаботится о сохранении всех изменений для вас очень эффективным и надежным способом.

2 голосов
/ 30 июля 2011

Структурированные данные, к которым вы будете обращаться постоянно, лучше обрабатываются в базе данных SQLite, а не в XML-файле.Если вы идете по маршруту XML, вам придется написать весь код для анализа, запроса, хранения данных.При использовании базы данных большинству этих функций требуется гораздо меньше кода для написания, и, скорее всего, они будут более эффективными.Существует также меньше возможностей для ошибок.Вам также не нужно думать о том, когда фиксировать изменения, внесенные в представление XML в памяти, в настоящий файл.

Я настоятельно рекомендую вам прочитать статью о хранилище данных , а также посмотреть на Notepad Tutorial , поскольку он демонстрирует все методы, которые вам понадобятся для создания, обновления и запроса базы данных и интеграции ее с ListView.

. Может показаться, чтоисследования, но ваше приложение будет намного более гибким и без ошибок, если вы используете встроенный SQLite, а не катите свое собственное хранилище с XML-файлами.

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