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, если ваши данные построены на графике.