2016-04-14 3 views
0

Я разрабатываю приложение, которое загружает CSV-файл и заполняет таблицу БД данными CSV.Обновление базы данных Android из файла CSV

Проблема заключается в том, что CSV-файл будет изменен каждый час, и моему приложению придется обновлять БД в соответствии с изменениями.

Я не знаю, какие изменения будут внесены - строка удалена/добавлена ​​или запись будет изменена.

Какова будет наилучшая практика в этом случае? Должен ли я отказаться от таблицы и создать ее снова, когда загрузится новый CSV? Или лучше сравнить существующие ценности с новыми и внести необходимые изменения?

+0

Хорошо попробуйте их обоих. Почему ты этого не сделал? – greenapps

ответ

0

Я думаю, ваша проблема может быть решена, если вы поместите столбец updateTime в таблице и при импорте данных из CSV каждый раз, вы просто выполнить обновление с:

    int rowsEffected = database.update(...); 

если rowsEffected> 0, необходимо выполнить вставить. Каждый раз, когда вы вставляете или обновляете, вам нужно поместить обновленное datetime в столбец updateTime, а также в sharedpreference. Затем, когда вы получите данные из файла csv в следующий час, просто проверьте datetime из sharedpreference и удалите каждый столбец, который не помечен элементом данных в столбце updateTime, поскольку они не присутствовали в предыдущем csv и продолжают процесс вставлять и обновлять. Я бы не падал и не воссоздавал, потому что падение и воссоздание напоминают чистое начало, но здесь вы просто манипулируете данными.

Смежные вопросы