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

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

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

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

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

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

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

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


person Chris Browne    schedule 23.01.2012    source источник
comment
вы думали об использовании JSON ??   -  person    schedule 23.01.2012
comment
В данный момент я изучаю JSON и HSQLDB - я вернусь и приму ответ, основанный на этом исследовании, если вам нужен представитель, не могли бы вы превратить свое предложение в ответ, Киран?   -  person Chris Browne    schedule 23.01.2012


Ответы (3)


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

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

person Piotr Gwiazda    schedule 23.01.2012

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

person Olivier Jacot-Descombes    schedule 23.01.2012

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

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

person Chris Browne    schedule 16.03.2012