Иерархическое хранение данных

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Подскажите, существуют ли простые решения (nosql, noxml), для иерархического хранения данных (мене масштабные чем файловая система, ldap, active directory).

требования хранения свойств, в виде родитель-дети-дети-дети, поддерживающий индексы как для родителей так и для потомков?

кинулся было писать свое, но на всякий случай решил спросить :)

upd: в виде родитель-дети-дети-дети...., т.е. каждый ребенок может являться родителем.
upd: nested sets не то
 

флоппик

promotor fidei
Команда форума
Партнер клуба
насколько «простые» решения?
ну монгодб например.
 

AmdY

Пью пиво
Команда форума
На веборубе Sad Spirit что-то такое рассказывал о Postgres, я краем уха лишь слышал, отпиши ему в личку.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
ключ->значение, не подходит, с точки зрения того что мне надо, это больше nested sets
монго - это не ключ-значение.
Что смысла предлагать варианты человеку, если он все равно их не слушает?
 

~WR~

Новичок
Постгрес, да:
http://www.postgresql.org/docs/current/static/ltree.html

Любые деревья, любые манипуляции с деревьями.
Один быстрый индекс, который поддерживает выборки любой сложности. Вплоть до своего рода регулярных выражений.
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
монго - это не ключ-значение.
Что смысла предлагать варианты человеку, если он все равно их не слушает?
окей, я читаю сейчас документацию mongo, пока сложно доходит возможно ли такая штука без принудительного создания индексов, для простоты возьмем нотацию php
PHP:
$db['Документы'].where('type','act,invoice').between('date','2012-01-01',now())->id
#на выходе массив ID
#в то-же время возможен вариант

$db['Документы'].between('date','2012-01-01',now()).where('name','/^[0-9]+/')->name

#или

$db['Документы'][$id]['name']
$db['Документы'][$id]['name']
$db['Документы'][$id]['type']
$db['Документы'][$id]['version'][0]
$db['Документы'][$id]['version'][1]['amount']['currency']
$db['Документы'][$id]['version'][1]['amount']['value']

#или
ps: чукча не читатель, мне надо делать, а не лопатить тонны документации, было-б наоборот, я бы не задавал вопрос
upd: nosql, обязательное требование
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Такая штука — какая штука? Сформулируй мысль, елки палки, русским языком! Ты же не пятиклассник у доски, а разработчик, предположительно хороший. Я же не знаю, что там у тебя в голове творится.
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
флоппик
ты когда-нибудь лихорадочно искал, решение у меня сейчас именно такая ситуация. заказчик требует, ему не нужно sql решение, не хочет поддерживать искать админа или хрен его знает чего, ему надо кросплатформенное, и офигенно хайлоодное, не знаю зачем, пока не выдает тайны, ждет по сути "на проводе".
т.е. либо мне хапнуть бабки либо мне но в меньшем объеме, понятно объяснил $)
 

флоппик

promotor fidei
Команда форума
Партнер клуба
PHP:
db.docs.find({type:['act', 'invoice'], date:{$gt:'2012-01-01', $lt:now()}}, {id:1});
db.docs.find({name:{$regex:'/^[0-9]+/'}, date:{$gt:'2012-01-01', $lt:now()}}, {id:1, name:1});
Это ответит на твой вопрос?

PS. А с такими торопливыми и связываться не стоит.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Монго кроссплатформенный, но 64bit only, по факту. 32х битная версия есть, но для продакшна не пойдет — ограничение на размер базы.
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
PHP:
db.docs.find({type:['act', 'invoice'], date:{$gt:'2012-01-01', $lt:now()}}, {id:1});
db.docs.find({name:{$regex:'/^[0-9]+/'}, date:{$gt:'2012-01-01', $lt:now()}}, {id:1, name:1});
Это ответит на твой вопрос?
эмм, т.е. правильно ли я понимаю, что мне надо будет писать еще lazy load, для случая, если мне надо для полученных документов получать их детей и детей их детей и т.д.?

PS. А с такими торопливыми и связываться не стоит.
светит "Бали" :)
 

AmdY

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

флоппик

promotor fidei
Команда форума
Партнер клуба
эмм... я не очень понимаю, что ты имеешь ввиду.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
На самом деле, «админить» монго мне реально не пришлось вообще. Может у меня конечно и задачи были не ахти... но она просто поставилась и работала :)
 
Сверху