Должен ли я использовать плоский файл или базу данных для хранения кавычек для приложения для случайных кавычек на Android?
Вопрос
Я разрабатываю приложение на Android, которое случайным образом выбирает и отображает вдохновляющую цитату (или стих) из большой коллекции цитат. На Android я могу выбрать между плоским файлом и базой данных SQLite.
Приложение должно удовлетворить следующие условия:
Быть масштабируемыми до 10^6 кавычек и/или стихов
Будьте очень быстрыми (т.е. извлеките и отображайте цитату, сразу же на прикосновении кнопки)
Уметь загружать новые цитаты из внешнего источника (в формате, который я еще не решил)
Какой формат данных я должен использовать? Спасибо.
Решение
Я бы пошел с очень простой базой данных, одиночной таблицей:
Quotes
ID sequential integer PK
Quote text/string
С возможным «просматриваемым» битомным полем, которое вы можете обновить, чтобы предотвратить дубликаты. Создайте случайное значение и выберите эту строку из таблицы, отметьте ее просмотр и сделан с ним.
Проблема с плоским файлом быстро находит и читает цитату из середины файла. Это то, что база данных делает хорошо. Также с «плоским» файлом у вас будет много потраченного места в конце линий файлов.
Кроме того, если вы можете загрузить новые кавычки, зачем заполнять 10^6 за любой раз? Просто загрузите достаточно, чтобы приложение проходило и проходила через них в последовательном порядке, удаляя просматриваемые и загружая новые. Этот подход потребует от вас отслеживать последнюю загруженную цитату, поэтому вы всегда загружаете новые.