Лучший способ хранить URL-адреса локально

Я создаю RSS-ридер как хобби-проект и в тот момент, когда пользователь добавляет свои собственные URL-адреса.

Я думал о двух вещах.

  • Файл с открытым текстом, в котором каждый URL-адрес представляет собой одну строку.
  • SQLite, где я могу иметь уникальные идентификаторы и описания после URL-адреса

Является ли идея SQLite слишком накладной или есть лучший способ сделать что-то подобное?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
619
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Почему не XML?

Если вы в любом случае имеете дело с RSS, то все в порядке :)

Ответ принят как подходящий

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

Кроме того, импорт и экспорт из других программ чтения RSS осуществляется через OPML. Часто для этого есть библиотека. Если вы заинтересованы в переключении пользователей, вам необходимо поддерживать OPML. Спасибо jamesh за то, что поднял этот вопрос.

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

jamesh 02.10.2008 19:03

Планируете ли вы хранить только URL-адреса? Или вы планируете добавить данные типа last_fetch_time или около того?

Если это простой список URL-адресов, который ваша программа будет читать построчно и загружать данные, сохраните их в файле или, что еще лучше, в каком-нибудь сериализованном объекте, записанном в файл.

Если вы планируете расширить его, добавить комментарии / время последней выборки, так далее, я бы выбрал SQLite, это не так уж и много накладных расходов.

Спасибо за это, я, вероятно, немного расширю его.

Ólafur Waage 02.10.2008 19:02

Если это однопользовательское приложение, имеющее только один экземпляр, SQLite может оказаться излишним.

На мой взгляд, у вас есть несколько вариантов:

  1. Уровень SQLite / базы данных. Увеличивает зависимости, необходимые для запуска вашего кода. Но позволяет одновременный доступ
  2. Накатайте собственный парсер текста. Сложность возрастает по мере того, как вы хотите сохранить больше данных и заново изобретаете колесо. Меньше зависимости и изначально, хотя ваши данные просты, новичку вашего приложения легко редактировать.
  3. Используйте XML. Он хорошо сформирован, определен и доступен для редактирования. Однако это может быть излишним для хранения только URL-адреса.
  4. Используйте что-то вроде соленый огурец для сериализации ваших объектов и сохранения их на диск. Изменения в вашей структуре данных означают «обновление» файлов рассола. Не очень интуитивно понятно редактировать для начинающего пользователя, но чрезвычайно легко реализовать.

Я бы выбрал вариант с текстовым файлом XML. Вы можете использовать инструмент XSD, встроенный в Visual Studio, для создания DataTable из данных XML, который при необходимости легко сериализует обратно в файл.

Другое предостережение заключается в том, что я уверен, что вы захотите, чтобы конечный пользователь мог классифицировать свои RSS-каналы и иметь возможность искать / сортировать их, и наличие такого стиля с данными поможет в этом.

Вы получите легкое хранение и доступ к файлам, преимущество структуры «базы данных», но не совсем накладные расходы, связанные с SQLite.

Другие вопросы по теме