Не зная больше о том, что делает ваше конкретное приложение, нам (нам) трудно сказать, является ли база данных правильным выбором. Однако есть некоторые практические правила, которые вы можете использовать, чтобы помочь принять решение.
База данных может быть хорошим выбором, когда:
- Данные могут использоваться несколькими пользователями.
- Если возможна одновременная активность, которая должна быть правильно сохранена.
- Если собранные данные не нужно сразу загружать в память.
- Когда вы хотите иметь возможность запрашивать данные или сообщать о них сложными способами.
- Если вы хотите обеспечить прозрачность данных, которые хранятся с использованием стандартных инструментов.
- Когда изменения в основном локализованы, а не требуют восстановления всего хранилища данных.
- Когда ваши данные поддаются реляционному (а не, скажем, иерархическому представлению).
База данных может быть не лучшим выбором, если:
- Вы обслуживаете только одного пользователя.
- Параллельная активность незначительна, и вся модель данных должна быть воссоздана при сохранении изменений.
- Когда данных будет очень мало, и они будут загружены в память сразу.
- Когда ваши данные являются иерархическими или их трудно реляционно моделировать.
- Когда ваше приложение ориентировано на документы, и документы (файлы) будут отправляться другим пользователям.
- При наличии значительного количества двоичных данных, вкрапленных в данные, которые вы храните.
- Если вы хотите избежать зависимостей от сторонних инструментов или сервисов.
- Когда структура вашей модели данных может часто меняться.
Это все эмпирические правила ... ни одно условие не будет диктовать, использовать базу данных или нет. Вы должны изучить все соображения и решить, принесет ли вам достаточное преимущество использование базы данных.
Во многих средах (например, в iPhone) существует встроенный слой базы данных, доступный непосредственно на платформе. Существуют также инструменты (например, NSCoreData), которые помогают преодолеть несоответствие импеданса объектно-реляционного моделирования (ORM). В таких случаях может иметь смысл использовать базу данных для очень простого хранения данных.
Существует также ряд постоянных данных с открытым исходным кодом (NHiberante, DB4O и другие), которые помогают упростить использование базы данных в качестве постоянного хранилища ... которое, если вы можете использовать их, может сместить уравнение в пользу используя базу данных.
База данных может существенно упростить разработку вашего приложения, когда вам требуется поддержка запросов или функции поиска. Реляционные базы данных поддерживают язык запросов (SQL), который значительно упрощает поиск и извлечение результатов из базы данных. Разрешение работе базы данных может значительно сэкономить время, поскольку базы данных специально предназначены для правильного и эффективного выполнения операций запроса. Однако это происходит за счет хорошо спроектированной структуры реляционных данных, которую вы должны создать.
Одним из важных соображений является то, будут ли пользователи делиться данными, которые они создают / потребляют, используя ваше приложение. Если ваше приложение больше ориентировано на документы (например, Word, Excel, Powerpoint), тогда модель сериализации на основе файлов может быть более подходящей. Если данные вашего приложения не будут переданы - тогда база данных может иметь смысл.
Еще один важный фактор - насколько вы хотите, чтобы ваши данные были открытыми. Базы данных хранят информацию в четко определенных структурах (таблицах), и это облегчает вам (и вашим пользователям) прямой доступ и проверку данных. Форматы хранения, такие как XML, также позволяют это, но в несколько меньшей степени.