Является ли наличие нескольких БД SQL плохой идеей для одного приложения? - PullRequest
2 голосов
/ 28 февраля 2012

Я разрабатываю приложение для iOS и решил разделить требования к постоянству на три отдельные базы данных SQL.

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

Идея, лежащая в основе этого разделения, заключается в том, что первая БД эффективно заменяется, вторая - транзакционный источник, а метаинформация не должна расти.

Есть ли какие-либо предостережения в отношении этого подхода, конечно, я понимаю, что не могу присоединиться к каждому, хотя я не собираюсь.

Ответы [ 3 ]

3 голосов
/ 28 февраля 2012

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

Пара конкретных указателей:

  • Статические данные: поскольку эта база данных доступна только для чтения,открыть его только для чтения
  • Вы можете объединить базы данных, например: Используйте оператор SQL ATTACH и переходите оттуда.
0 голосов
/ 28 февраля 2012

Я не знаком с iOS, но я бы рассмотрел это с космической точки зрения.Каков минимальный размер базы данных SQL по сравнению с размером данных, которые вы собираетесь в ней хранить?Если БД не добавляет значительного объема служебной информации, тогда все должно быть в порядке.Но если вы собираетесь хранить 1 КБ данных, а пустая база данных - 16 КБ, я бы пересмотрел.

0 голосов
/ 28 февраля 2012

Прежде чем использовать две базы данных, я бы подумал о том, чтобы иметь один или два файла JSON. Это может быть хорошо для ваших статических данных, и, вероятно, будет достаточно для метаданных.

Очевидно, что это зависит от количества и организации ваших данных, а также от того, выполняете ли вы операции CRUD или нет.

...