XML-файл как база данных? - PullRequest
2 голосов
/ 09 января 2009

Можно ли использовать один XML-файл для Ruby on Rails в качестве базы данных ActiveRecord?

Ответы [ 4 ]

5 голосов
/ 09 января 2009

Нет, AFAIK,

Я бы посоветовал вам использовать sqlite3 в качестве базы данных, так как он легкий и маленький. Если вы хотите сгенерировать XML из этого, вы можете просто использовать метод to_xml:)

3 голосов
/ 09 января 2009

Прочитайте это сообщение о потоке стека для краткого изложения по этой теме. Ответ сводится к масштабируемости и целостности данных. В какой-то момент файл данных станет достаточно большим, и ему потребуются индексы на диске, которые напрямую не поддерживаются в XML. Кроме того, файл XML не является транзакционным - в нем нет журналов. Чтобы реализовать транзакционное хранилище в XML-файле, вам необходимо реализовать СУБД и создать дополнительные файлы журналов транзакций и индексов. Это почти наверняка гораздо больше проблем, чем стоит.

1 голос
/ 09 января 2009

Я бы сказал, что было возможно, но вы на самом деле не хотели бы это делать!

Это будет связано с написанием нового адаптера XML ActiveRecord, который будет выдавать XPath (предположительно) запросы к вашему файлу, где другие адаптеры будут генерировать SQL. Полагаю, вам также понадобятся миграции для поддержки файлов XSD или DTD.

Это ужасно. Не делай этого.

0 голосов
/ 04 апреля 2012

https://rubygems.org/gems/xml_active, кажется, делает эту работу. Я копаю глубже, но это то, с чего я начинаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...