Как построить базу данных с возможностью поиска? - PullRequest
0 голосов
/ 06 мая 2011

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

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

Как в этом простом примере:

Apple    Fruit    Malus              Green/Red      55
Banana   Fruit    Musa acuminata     Yellow         68
Carrot   Veget.   D. carota          Orange         35

Допустим, этот текст хранится в ~/database.txt

Я хотел бы иметь возможность искать все записи, которыеимеют тип fruit (возвращающий, Apple и Banana) или все записи с килокалорией, которые меньше 60 (возвращающие Apple и Carrot) в командной строке.

Возвращение должно происходить через стандартный вывод терминала и выглядеть следующим образом:

$mydatabasesearch cal '<60'

Apple    Fruit    Malus              Green/Red      55
Carrot   Veget.   D. carota          Orange         35

Кроме того, возможность добавления в базу данных через командную строку была бы замечательной!

Есть ли что-нибудь вокруг, что делает это?Если нет, как бы вы посоветовали мне написать такое приложение?Я знаю немного C++, но это все ...

Ответы [ 3 ]

1 голос
/ 06 мая 2011

Взгляните на sqlite .Это немного сложнее, чем обычные текстовые файлы, но намного мощнее.

0 голосов
/ 06 мая 2011

В любом случае вы можете сделать это в Unix с помощью файла SED с разделителями и, возможно, некоторого простого perl командной строки, который вы можете заключить в скрипт bash.На wikibooks есть хороший учебник по манипулированию данными, и SED, который вы могли бы использовать, вероятно, здесь и во второй части учебника.

0 голосов
/ 06 мая 2011

Обычные текстовые файлы на самом деле не считаются базами данных.

Если вы хотите придерживаться текстовых файлов и командной строки, взгляните на обычные утилиты Unix, такие как grep, awk и пакет coreutils (cat, cut, uniq, .. .) которые работают с текстовыми файлами. Добавьте эти команды в скрипт, и все готово.

Как только вы перейдете на какую-либо систему баз данных, у вас больше не будет текстовых файлов в качестве хранилища.

Помимо уже упомянутого sqlite, библиотеку Berkeley DB также стоит посмотреть, если вы хотите написать свою собственную программу. Обе библиотеки должны быть хороши в вашем случае, так как они не требуют внешнего сервера базы данных (например, mysql)

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