Файл JSON VS SQLite android

Я разработаю приложение для Android с большим количеством данных (json файлы с некоторыми строками и CSV для графических данных с большим количеством строк), эти данные меняются каждые 5 минут и заменяют все предыдущие данные (или в основном).

Каковы наилучшие подходы к его разработке? У меня есть 2 варианта:

  • Сохраните все данные в db sqlite и синхронизируйте их с помощью IntentService.

  • сохранить данные в json и csv файлах и заменить их каждые 5 минут.

Какой подход будет наилучшим? Это учитывает время для разбора файлов, сортировки данных, времени загрузки и согласованности данных.

любые другие идеи?

PD: мне также нужна система кэширования, если у меня нет интернета, и мне нужны предыдущие сохраненные данные.

Ответы

Ответ 1

Sqlite в основном используется, когда вы хотите сохранить и использовать данные в будущем. В вашем случае данные меняют каждый 5 minutes, поэтому лучше иметь JSON, потому что каждый раз, чтобы сделать Database connection store и retrieve после 5 minutes, потребуется некоторое время.

UPDATE:

У меня также было такое же приложение, в котором данные менялись каждый раз. В этом случае я использовал Map<K, V> и ArrayList для поддержания значений, потому что, поскольку данные меняются каждый раз, я думаю, что не всегда возможно хранить данные в Sqlite каждый раз. Для выполнения хранилища DB-соединений требуется много времени, загрузка, обновление данных в Sqlite.

Ответ 2

Преимущества SQLite:

  • Изменения: ACID
  • Вы можете быстрее выполнять сложные запросы (например, "дайте мне только поля A, B из элементов с (C/D) > E" )
  • Я бы поставил более компактный для больших данных (целые числа хранятся как целые числа вместо строки отдельной цифры)
  • Только один файл
  • Вы можете легко объединить старые данные с новыми данными.
  • Вы можете обновлять текущие данные даже при использовании
  • Concurrency можно обрабатывать

Преимущества для JSON/CSV:

  • Легче отлаживать (обычный текст)
  • Быстрее сделать все обновление (скопируйте новый файл + удалить старый)

Для исходного вопроса все удаление/замена данных делает победителя JSON/CSV.

Однако, если приложение должно было получить частичные данные каждые 10 секунд и объединить/обновить его с предыдущим, SQLite будет лучшим вариантом.

Ответ 3

Я рекомендую использовать JSON или некоторый тип сериализации объектов, если:

  • Для операций записи требуется выполнение ACID.
  • Вам необходимо сообщить данные, которые могут включать в себя копирование данных на внешнюю СУБД или
  • Вы хотите присоединиться к тем, кто причастен к чрезмерному использованию/злоупотреблению базами данных, как это обычно наблюдается сегодня.

Ответ 4

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

Ответ 5

Назначение JSON и SQLite полностью отличается друг от друга

  • JSON = используется отправка и получение данных между сервером и клиентом.
  • SQLite = используется для хранения данных.