Текстовая база для ваших движков

[Удален]
730

Делаю простейшую БД на текстах, реализованную средствами РНР5.

Кому интересно - обращайтесь, вот описание:

Rumba Data Base

RDB предназначена для использования в качестве базы данных

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

выборки записей по ПРИЗНАКУ, удаления записей и нечастой

перезаписи (т.к. перезапись - самая медленная функция).

Структура базы линейна, поэтому последняя запись (за

исключением перезаписи) будет первой при выборке по ПРИЗНАКУ.

Ограничения Rumba Data Base

- Запрещено использовать символ '‡'

- Файл базы данных должен иметь UNIX-формат

ОПИСАНИЕ ФУНКЦИЙ

ИМЯ - название записи

ПРИЗНАК - категория или раздел

КОНТЕНТ - содержимое записи

СТРАНИЦА - номер страницы в выборке

ЗАПИСЕЙ - количество записей на страницу

add_one (ИМЯ, ПРИЗНАК, КОНТЕНТ)

/ добавить запись /

возвращает 'ok' в случае успешного добавления

и 'no' в случае, если такая статья уже есть

write_one (ИМЯ, ПРИЗНАК, КОНТЕНТ)

/ добавить запись /

аналогична add_one, но добавляет запись без

проверки на наличие в базе (работает быстрей)

get_last (ПРИЗНАК, СТРАНИЦА, ЗАПИСЕЙ)

/ получить последние записи /

возвращает массив записей, отвечающих запросу

в формате [ИМЯ]=ИМЯ‡ПРИЗНАК‡КОНТЕНТ

ПРИЗНАК может принимать значение all

get_list (ПРИЗНАК)

/ получить список записей /

возвращает массив со списком записей, отвечающих запросу

в формате [ИМЯ]=ПРИЗНАК

ПРИЗНАК может принимать значение all

replace_one (ИМЯ, ПРИЗНАК, КОНТЕНТ)

/ перезаписать запись /

возвращает 'ok' если успешно перезаписано, и 'no'

если такой записи нет

get_one (ИМЯ)

/ получить запись /

возвращает массив с записью в формате

[ИМЯ]=ИМЯ‡ПРИЗНАК‡КОНТЕНТ

del_one (ИМЯ)

/ удалить запись /

возвращает 'ok' если успешно удалено, и 'no'

если такой записи нет

[Удален]
#1

Теперь помимо теоретического описания можно скачать архивчик - версия 0.5.

N
На сайте с 06.05.2007
Offline
419
#2

кому может быть в 21 веке интересна еще одна велосипедная разработка базы данных?

кому интересно - обращайтесь туда http://www.sqlite.org/ и туда http://www.php.net/manual/en/book.sqlite.php

Кнопка вызова админа ()
[Удален]
#3

а кому еще интересней

http://www.oracle.com/technology/products/berkeley-db/xml/index.html

http://mimesis.110mb.com/index.php

Вряд ли у кого то получится сделать лучше

Pro PHP
На сайте с 27.05.2007
Offline
21
#4

claygod, главный вопрос в том, для чего предназначена эта база данных. Если у не есть ниша - у нее есть будущее. Если соревноваться с sqlite от разработчиков php5, то это бессмысленное соревнование. Ведь sqlite работает как модуль php5, т.е. написан на Си, а это в десятки (или даже сотни) раз быстрее, чем самый оптимизированный php скрипт.

Надеюсь мои фразы наведут Вас на верный путь. Успехов Вам!

Для PHP программистов: Templum - шаблонизатор для php (http://templum.googlecode.com) (замена Smarty), рассылка на Subscribe.ru (http://subscribe.ru/catalog/inet.webbuild.php5pro).
Dreammaker
На сайте с 20.04.2006
Offline
569
#5
Pro PHP:
Ведь sqlite работает как модуль php5

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

[Удален]
#6
Dreammaker:
Что может быть как плюсом так и минусом, ибо на хосте может не быть данного модуля. Впрочем, моё замечание не умаляет моего скепсиса по отношению к продукту описанному в первом посте.

в 5м пхп он енэйблд бай дефолт а с четвертым вроде как уже попрощались =)

[Удален]
#7
Pro PHP:
claygod, главный вопрос в том, для чего предназначена эта база данных. Если у не есть ниша - у нее есть будущее. Если соревноваться с sqlite от разработчиков php5, то это бессмысленное соревнование. Ведь sqlite работает как модуль php5, т.е. написан на Си, а это в десятки (или даже сотни) раз быстрее, чем самый оптимизированный php скрипт.

Надеюсь мои фразы наведут Вас на верный путь. Успехов Вам!

Согласен с тем, что соревноваться с SQLite нет смысла, но это задачей и не ставится.

Кроме того, говорить о суперскорости тоже не резон. Однако области применения

могут найтись вполне. Теоретически, если SQLite не установлен, то это тот самый случай :)

Практический интерес может быть в том, что RDB будет нацеливаться под определённые

конкретные задачи, что с одной стороны, конечно будет сужать функционал и лишать

универсальности, но с другой стороны, можно добавлять некоторого удобства и простоты

в работе с этой БД.

Фактически RDB заточена под работу с лентой новостей (к примеру для блогов, комментариев,

новостей) с помощью метода get_last. Время выборки хотя и не рекордное, но весьма приемлемое.

Если не затруднит, то вы можете потестировать и на базах с разным размером и выложить тут результаты.

О компилируемости и скорости: изначально работа над БД начата на С++, однако практически

оказалось удобней (и быстрей) делать на РНР. После того, как RDB приобретет какой-то

законченный вид, она появится и в формате скомпилированного CGI. Однако это уже совсем другой

подход и подойдёт он скорей всего для других целей.

Также есть идея встроить в RBD защиту от инъекций и т.д. дабы уже на уровне БД реализовать

нормальный уровень безопасности. В принципе БД будет так сформирована, что простая CMS на

ней будет делаться за полчаса, а уж дальнейшее её использование под определённые нужды -

будет делом конечного разработчика.

Скептические мнения мне вполне понятны и я не оспариваю их. Мне интересны замечания, мнения

и предложения по работе с БД. Постараюсь при дальнейшей разработке их учесть.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий