Java XML против SQL против пользовательских хранилищ данных

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

Мои конкретные потребности:

  • Небольшая площадь для постоянно расширяющегося набора данных, который может легко превысить 10000 записей
  • Легко получить доступ из кода, легко портировать на другие языки (в случае, если я напишу интерфейс на другом языке в будущем)
  • (Необязательно) Простой доступ напрямую, что позволяет выполнять ручное редактирование
  • Файловое хранилище предпочтительнее, так как оно значительно увеличивает переносимость данных.

Я рассмотрел XML, который в большинстве случаев не работает по второму и третьему пунктам, но также немного по первому пункту (я не уверен, насколько масштабным является XML на самом деле, я не проводил никаких тестов).

Я также рассмотрел SQLite, но он требует сторонней библиотеки для правильной работы с Java (насколько я знаю), а также не работает в третьей точке, так как прямой доступ невозможен.

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

Примечание: я знаю, что это возможный дубликат метода хранения Best для небольших персональных приложений (база данных SQL, XML или другой тип файла), но предпочтительным ответом является SQLite, и существует разница между C++ и Java в том, что касается SQLite Поэтому я считаю, что этот вопрос достаточно отличается. Поправьте меня если я ошибаюсь.

3 ответа

Решение

В конце концов, я выбрал специальное JSON-подобное решение, так как для проекта было не важно, чтобы файл использовал стандартизированный формат.

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

Доступ к БД через ODBC делает код менее зависимым от технологии БД, так как большинство баз данных имеют драйверы ODBC.

Для чего-то вроде реляционных данных я бы предпочел ядро ​​базы данных H2. HSQLDB тоже может это сделать. Он сможет запрашивать данные легче, чем XML или JSON. Думайте об этом как о продвинутом SQLite, который может работать в режиме сервера и легко доступен для внешних инструментов (фактически поставляется с H2).

Посмотрите на neo4j, если ваши данные построены на графике.

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