PEAR:DB_NestedSet кто-нибуть юзает?

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: he][es
kvf77 ну... этого можно и года 2 ждать... А после того как она в релиз уйдёт, можно будет попробовать пнуть саппорт хостера, что бы поставили... (иногда помогает)...
Гы-гы-гы. У меня щас один из проектов крутится-таки на shared хостинге, так там стоит PostgreSQL 7.3.2 (текущая версия 8.0.3, из ветки 7.3.x --- 7.3.10). Что характерно, при том, что версия мягко говоря старая, почему-то у меня и так всё работает: и хранимые процедуры, и представления, и триггеры. Напрягает иногда только отсутствие улучшенного ALTER TABLE. ;)

Что-то мне подсказывает, что с мысклеверсиями у хостеров картина похожая. Тока вот с функциональностью намного другая. Но ведь это же ваш "осознанный выбор", ага? :rolleyes:
 

kvf77

Red Devil
Sad Spirit
полностью согласен. Проблема мускуля в том, что они как всегда идут позади планеты всей, к тому же они изначально пользователя приучили писать ущербный во многом код не предоставляя ему нормальной функциональности. глупо думать, что я, например, жду не дождусь новой версии, чтобы выкинуть годами писаные либы и начать юзать супер-пупер новые функции. думаю, что еще несколько лет многие из моих сайтов будут жить и требовать старенького мускуля версии 3.5 :)
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: algo
А есть какая-то причина, по которой ты предпочел Nested sets вместо ltree ?
Nested sets у меня появился несколько раньше, чем ltree в contrib'ах...

Кроме того, ltree работает на GIST индексах, а они будут качественно работать только в будущей 8.1
 

he][es

Новичок
Sad Spirit была такая фигня с My ещё кажется в бытность 3ей версии. Написал хостеру что нужна 4ая. Он перенес сайт на сервак с 4ой... И всего делов. (правда попросить настойчиво пришлось)
kvf77 не спорю, возможн вы правы, есть и Oracle и DB... Просто я начинал знакомиться с БД с Foxа и потом был MySQL. Вот и всё... Ещё слышал о нестабильной работе PostgreSQL под виндой. (возможно не то и не там читал, сам не пробовал. С удовольствием перешёл бы на Linux, проблема в малом: с модемом справиться не могу.)
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: he][es
Ещё слышал о нестабильной работе PostgreSQL под виндой. (возможно не то и не там читал, сам не пробовал. С удовольствием перешёл бы на Linux, проблема в малом: с модемом справиться не могу.)
Именно на это я и намекал, когда писал про "осознанный выбор", хе-хе.

PostgreSQL текущий на винду ставится в три с половиной клика мышкой и работает нормально.
 

he][es

Новичок
А я и не говорил, что я его юзал и он дерьмо... :D

-~{}~ 03.10.05 11:23:

Вопрос возник по сиквенсам:
залезь в таблицу сиквенсов и вручную выставь нужную стартовую позицию
Это как?..
Таблица structura_rashodov_new_id_seq
2 столбца: id & vapor - что за что отвечает?
 

kvf77

Red Devil
he][es

в ADODB id отвечает за номер последнего вставленного id
 

he][es

Новичок
эээ... Ну на сколько я понимаю тут PEAR:: DB испоьзуется.... Или один фиг?..
 

kvf77

Red Devil
he][es

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

crocodile2u

http://vbolshov.org.ru
2 столбца: id & vapor - что за что отвечает?
Мгм.. Это меня удивляет.. Посмотрел на свои сиквенсы в мускуле: одно автоинкрементное поле (id, само собойё). Мож, версия PEAR::DB другая? У меня не самая последняя...
 

he][es

Новичок
И ещё фишка, ч/з Enterprise Manager это поле отредактировать не могу. Говорит нельзя и всё тут... :/ (MSSQL)
 

kvf77

Red Devil
he][es

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

he][es

Новичок
:D .. ну есть немножко... Сорри...

-~{}~ 03.11.05 11:29:

Господа, пытаюсь переместить ветку
$nestedSet->moveTree($str['structura_id'], $str['structura_id_new'], 'NESE_MOVE_BELOW');
Вываливает
Notice: Undefined variable: clone_id in C:\php\PEAR\DB\NestedSet.php on line 1624

Notice: getParent(): Node not found in C:\php\PEAR\PEAR.php on line 879

Fatal error: Cannot use object of type PEAR_Error as array in C:\php\PEAR\DB\NestedSet.php on line 1625
В чём может быть дело? И где посм.?

-~{}~ 05.11.05 22:52:

Так, с этим разобрался, :D новая непонятка, при переносе ветки не переносит "поля" такие как title, т.е. создается ветка а доп. поля пустые... :/ В чём дело может быть?.. И ещё вопрос чем различаются moveTree и _moveAcross?
 

crocodile2u

http://vbolshov.org.ru
Вообще-то это странно, что "не переносит "поля" такие как title" - у меня вот все работает. (Кстати, поля "title" и т. д. - указаны в опциях при вызове DB_NestedSet::factory() ??? )

moveTree и _moveAcross отличаются тем, что moveTree - это метод, которым надлежит пользоваться тебе как пользователю пакета, а _moveAcross - метод, использующийся внутри moveTree при определенных условиях. В пхп5 этот метод был бы 'protected' или 'private'.
 

he][es

Новичок
Понял, пасиба.
PHP:
$config['field_names']['structura']['id'] = 'id';
$config['field_names']['structura']['root_id'] = 'rootid';
$config['field_names']['structura']['cleft'] = 'l';
$config['field_names']['structura']['cright'] = 'r';
$config['field_names']['structura']['norder'] = 'norder';
$config['field_names']['structura']['level'] = 'level';
$config['field_names']['structura']['title'] = 'name';
$config['field_names']['structura']['parent'] = 'parent';
$config['field_names']['structura']['name'] = 'name';
$config['field_names']['structura']['info'] = 'info';

$nestedSet =& DB_NestedSet::factory('DB', $dsn, $config['field_names']['structura']);
Вот... так что чего то непонятное...
 

crocodile2u

http://vbolshov.org.ru
Какой версией пакета ты пользуешься?

Спрашиваю в связи вот с чем:
недавно обновил пакет до версии 1.2.4 - и обнаружил, что некоторые скрипты перестали работать - из-за Backwards Compatibility (я это все только что заметил, и не могу сказать, начиная с какой версии пошли изменения). В общем, нет некоторых методов и свойств, которые раньше были. (У меня, кстати, появилось много вопросов к разработчикам...)

Только лишь догадка, но все же: может быть, то, что ты описываешь - баг новой верии??? Попробуй скачать более старую версию, да подревнее :) А я постараюсь найти, какой версией пользовался раньше, и тут же сообщу. Насколько мне известно, таких вещей она себе не позволяла...

------- Как удалось выяснить позже - фразы насчет Backwards Compatibility - полный бред. См. ниже. ------
 

crocodile2u

http://vbolshov.org.ru
Хм... почему же это мне pear-овский установщик поставил 1.2.4? Ладно - разберусь с версиями - отпишу сюда.

А, ну да - 1.2.4 - Stable, а 1.3.6 - Beta. Все понятно. Ладно, хуже уже не будет - установлю 1.3.6

Ага. Поставил 1.3.6. Похоже, меня переклинило... Видимо, раньше у меня стояла версия новее, чем 1.2.4, а после обновления системы поставил стабильную версию 1.2.4 с помощью установщика - отсюда и траблы с "потерянными методами и свойствами"

Но, тем не менее, все великолепно сохраняется, все поля, и "title" - в том числе. И переносится (moveTree) - тоже замечательно...
 

he][es

Новичок
:/ хм... так же как у меня? Никаких доп. ключей?..
По началу у меня фигня с NOT NULL была. Теперь даже незнаю ы чём фишка может быть...
 

crocodile2u

http://vbolshov.org.ru
Я проверял как с полем 'name', так и с полем 'title'. Правда, только в MySQL.
 
Сверху