Проще, чем SQLite - PullRequest
       10

Проще, чем SQLite

2 голосов
/ 06 января 2010

Знаете ли вы какую-нибудь SQLite-подобную базу данных, которая хранит свои данные в легко читаемом текстовом формате (например, многострочный json или yaml)?

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

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

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

EDIT:

Я ищу что-то, что создает и поддерживает файл index для json / yaml / что угодно, что позволяет получить доступ к фрагментам данных как fast , поскольку соответствующая база данных может это сделать.

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

Ответы [ 7 ]

3 голосов
/ 06 января 2010

MongoDB имеет много общего с CouchDB, но проще.

Вы можете попробовать мою библиотеку (будьте осторожны) http://code.google.com/p/mongodloid/, чтобы сделать вашу жизнь еще проще

2 голосов
/ 06 января 2010

База данных плоских файлов показывает, что идея не слишком растянута ...

Интересно, почему ваши требования исключают «загрузку всех данных в память». Как вы думаете, у вас будет несколько ГБ "некоторых данных"? Даже некоторые МБ данных не должны быть слишком большими для загрузки и хранения в памяти, ведь браузер потребляет гораздо больше памяти с Dom большой веб-страницы ...

Полагаю, вы можете использовать файл с отображением в памяти , чтобы уменьшить использование памяти, но поддержание точного индекса может быть более сложным.
Интересно, использует ли Thunderbird, который хранит почтовые ящики в виде простых текстовых файлов (формат mbox)?

2 голосов
/ 06 января 2010

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

2 голосов
/ 06 января 2010

Большинство языков программирования поставляются с инструментами для сериализации и десериализации их собственных структур данных. Используйте их для хранения данных в текстовых файлах.

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

Например, в PHP вы можете использовать функцию serialize(), чтобы превратить любую структуру данных в строку (unserialize() делает обратное).

Запросы становятся такими же простыми, как и доступ к собственным структурам данных, без необходимости усложнения / медлительности SQL.

1 голос
/ 08 января 2010
1 голос
/ 06 января 2010

В молодости существовал какой-то движок баз данных на основе awk. Это был просто набор shell-скриптов. Но я не помню его имени и не знаю, был ли он SQL-совместимым или бесплатным.

Но сохраненные данные были полностью текстовыми.

Я не нашел его там, но эта ссылка может быть полезна:

Каталог бесплатных баз данных

1 голос
/ 06 января 2010

Xml, с Linq-To-Xml?

Человек читаемый и может быть частично обновлен или прочитан сразу.

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