Лучше создать db / tables программно или через файл .db в ресурсах - PullRequest
2 голосов
/ 02 марта 2010

Имеется ли в Android руководство по рекомендациям по программному созданию и заполнению db / таблиц вместо развертывания файла .db в ресурсах?

Каковы плюсы / минусы обоих подходов?

У меня есть БД с большими длинными строками в нескольких столбцах и около 50 строк, поэтому написание только одной инструкции вставки заняло бы довольно много места. Это кажется пустой тратой.

Мысли

Спасибо!
llappall

Ответы [ 2 ]

2 голосов
/ 14 марта 2010

Различия между двумя упомянутыми вами методами минимальны, размер базы данных составляет 50 строк. Я только что закончил приложение, в котором было примерно 8 тысяч строк. В этом случае программная загрузка данных при первом запуске приложения заняла более 5 минут только на эмуляторе. Изменение приложения для загрузки базы данных из ресурсов или необработанных каталогов позволило загрузить базу данных практически сразу.

Программная загрузка базы данных:

  • Легко модифицируемый
  • становится медленнее с увеличением размера
  • Дублирует данные в приложении

Копирование из активов:

  • Сложно изменить (требуется модификация базы данных вместо текстового файла)
  • Быстрая загрузка больших баз данных при инициализации
  • Дублирует данные в приложении

В обоих этих случаях данные дублируются. Текстовый файл или база данных в каталоге ресурсов не могут быть очищены после установки. Таким образом, эта копия не только существует, но и теперь данные также заполняются в базе данных. Чтобы избежать дублирования данных, существует третье решение. Когда приложение запускается и инициализируется, оно может получить базу данных с интернет-адреса. Он может загрузить базу данных и скопировать содержимое в базу данных (аналогично копированию из ресурсов).

1 голос
/ 04 марта 2010

Я только начал использовать SQLite на Android.

При принятии решений на этой платформе действуют те же факторы, что и на любой другой.

Сценарии и заполнение программ:

  • Разрешает обновления по проводам, упрощает автоматические обновления.
  • Сценарии ваших изменений делают их легко воспроизводимыми
  • Требуется больше начальных усилий (если вы не можете сгенерировать сценарий создания)
  • Может привести к проблемам управления версиями (не зная, какие изменения в сценариях были применены) и к ошибкам обновления по сценарию.

Предварительная подготовка базы данных и развертывание

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

Это все предпочтения, в конце концов, нечего сказать, что нельзя начинать с предварительно заполненной базы данных и обновлять ее по проводам с помощью сценариев.

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