Должен ли я использовать плоский файл или базу данных для хранения кавычек для приложения для случайных кавычек на Android?

StackOverflow https://stackoverflow.com/questions/1565869

Вопрос

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

Приложение должно удовлетворить следующие условия:

  1. Быть масштабируемыми до 10^6 кавычек и/или стихов

  2. Будьте очень быстрыми (т.е. извлеките и отображайте цитату, сразу же на прикосновении кнопки)

  3. Уметь загружать новые цитаты из внешнего источника (в формате, который я еще не решил)

Какой формат данных я должен использовать? Спасибо.

Это было полезно?

Решение

Я бы пошел с очень простой базой данных, одиночной таблицей:

Quotes
ID          sequential integer PK
Quote       text/string

С возможным «просматриваемым» битомным полем, которое вы можете обновить, чтобы предотвратить дубликаты. Создайте случайное значение и выберите эту строку из таблицы, отметьте ее просмотр и сделан с ним.

Проблема с плоским файлом быстро находит и читает цитату из середины файла. Это то, что база данных делает хорошо. Также с «плоским» файлом у вас будет много потраченного места в конце линий файлов.

Кроме того, если вы можете загрузить новые кавычки, зачем заполнять 10^6 за любой раз? Просто загрузите достаточно, чтобы приложение проходило и проходила через них в последовательном порядке, удаляя просматриваемые и загружая новые. Этот подход потребует от вас отслеживать последнюю загруженную цитату, поэтому вы всегда загружаете новые.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top