Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
10.12.2007, 16:27
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
т.е. есть поле типа вектор, в енм нужно заменить часть вектора, скажем так: в векторе сидит путь в дерерве к узлу и мне надо перевесить узел под другой парент. Как быстрее всего апдейтнуть запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.12.2007, 16:30
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
Winnipuhт.е. есть поле типа вектор, в енм нужно заменить часть вектора, скажем так: в векторе сидит путь в дерерве к узлу и мне надо перевесить узел под другой парент. Как быстрее всего апдейтнуть запись? ошибся, не вектор(!), а ARRAY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.12.2007, 17:57
|
|||
|---|---|---|---|
|
|||
как изменить вектор целых? |
|||
|
#18+
Но если известен индекс изменяемого элемента, затруднений не должно возникнуть... Код: plaintext определяются, или еще что-нибудь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.12.2007, 18:02
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
Золотая рыбкаНо если известен индекс изменяемого элемента, затруднений не должно возникнуть... Код: plaintext определяются, или еще что-нибудь? мне в общем случае надо менять: подмассив с начала до какого-то элемента на другой подмассив, причем он может быть меньшей, такой же или большей длины, чем заменяемый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.12.2007, 18:18
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
пример: Код: plaintext 1. 2. 3. 4. 5. 6. 2;"{1,2,3,7,8,9}" 3;"{1,2,3,4,10,11}" 1;"{1,2,3,4,5,6}" заменить для id=1 и 3: заменить 1,2,3,4 на 1,2,3,7,8, т.е. перевесить поддерево к другому паренту как такое сделать эфективно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.12.2007, 19:14
|
|||
|---|---|---|---|
|
|||
как изменить вектор целых? |
|||
|
#18+
> в векторе сидит путь в дерерве к узлу и мне надо перевесить узел под другой парент Сложно придумать что-то более тупое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.12.2007, 19:24
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
PostreSQL начинающий> в векторе сидит путь в дерерве к узлу и мне надо перевесить узел под другой парент Сложно придумать что-то более тупое. что именно по вашему мнению "тупое"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.12.2007, 19:40
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
PostreSQL начинающий> в векторе сидит путь в дерерве к узлу и мне надо перевесить узел под другой парент Сложно придумать что-то более тупое. где же вы, добрый, смелый и знающий человек? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.12.2007, 21:24
|
|||
|---|---|---|---|
|
|||
как изменить вектор целых? |
|||
|
#18+
> что именно по вашему мнению "тупое"? "в векторе сидит путь в дерерве к узлу" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 04:27
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
как то так: Код: plaintext 1. 2. 3. 4. -- „Истина — это вовсе не то, что можно убедительно доказать, это то, что делает всё проще и понятнее“ — Антуан де Сент-Экзюпери ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 08:59
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
PostreSQL начинающий> что именно по вашему мнению "тупое"? "в векторе сидит путь в дерерве к узлу" "не останавливайтесь же", что вы можете предложить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 10:03
|
|||
|---|---|---|---|
|
|||
как изменить вектор целых? |
|||
|
#18+
> что вы можете предложить? Вам - ничего. Для начала прочтите хоть что-нибудь по теме. Хотя бы из разряда "базы данных для dummies за 15 минут". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 10:08
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
PostreSQL начинающий> что вы можете предложить? Вам - ничего. Для начала прочтите хоть что-нибудь по теме. Хотя бы из разряда "базы данных для dummies за 15 минут". Видно, что вы далеки от темы, но всунуть свой пятак хочется... В таком случае не стоит участвовать в обсуждении, если нечего сказать. Вы на какой странице "базы данных для dummies за 15 минут"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 10:47
|
|||
|---|---|---|---|
|
|||
как изменить вектор целых? |
|||
|
#18+
Winnipuhчто вы можете предложить?хранить дерево в виде (id, parent_id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 11:18
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
LeXa NalBat Winnipuhчто вы можете предложить?хранить дерево в виде (id, parent_id) из-за специфики задачи я ушел от такого хранения, надо быстро искать, потому держу в записи путь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 11:37
|
|||
|---|---|---|---|
|
|||
как изменить вектор целых? |
|||
|
#18+
Winnipuh LeXa NalBatхранить дерево в виде (id, parent_id)из-за специфики задачи я ушел от такого хранения, надо быстро искать, потому держу в записи путьвыигрываете в одном, проигрываете в другом. может все-таки выбрать другой способ хранения... "надо быстро искать" - какие выборки нужны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 11:53
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
LeXa NalBat Winnipuh LeXa NalBatхранить дерево в виде (id, parent_id)из-за специфики задачи я ушел от такого хранения, надо быстро искать, потому держу в записи путьвыигрываете в одном, проигрываете в другом. может все-таки выбрать другой способ хранения... "надо быстро искать" - какие выборки нужны? дял поиска используется полнотекстовый поиск по основному полю и плюс уточняется расположение узла в дереве. База предназанчена для поиска, но нужно перевешивать узлы, удалять, добавлять. Если сделать "по теории", т.е. основная таблица узлов+подчиненная с путями, то получается в мастер 50 млн записей, в подчиненной может быть до 20 уровней дерева, т.е. больше 250 млн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 12:14
|
|||
|---|---|---|---|
|
|||
как изменить вектор целых? |
|||
|
#18+
Winnipuhдял поиска используется полнотекстовый поиск по основному полю и плюс уточняется расположение узла в дереве. База предназанчена для поиска, но нужно перевешивать узлы, удалять, добавлять. Если сделать "по теории", т.е. основная таблица узлов+подчиненная с путями, то получается в мастер 50 млн записей, в подчиненной может быть до 20 уровней дерева, т.е. больше 250 млн.допустим такая структура полнотекстовый индекс по полю search id, parent_id, name, search -- 1, null, 'всё', null 2, 1, 'компьютеры', 'компьютер computer' -- по нелистовым узлам надо искать? у них может быть поле search не null? 3, 2, 'ноутбуки', 'ноутбук notebook' 4, 2, 'десктопы', 'десктоп desktop' 5, 1, 'телефоны', 'телефон, мобильник, сотовый, phone, mobile' с какими ограничениями надо искать? только по полю search? каков должен быть результат? показывать все найденные элементы и их предков в виде дерева? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 12:48
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
LeXa NalBat Winnipuhдял поиска используется полнотекстовый поиск по основному полю и плюс уточняется расположение узла в дереве. База предназанчена для поиска, но нужно перевешивать узлы, удалять, добавлять. Если сделать "по теории", т.е. основная таблица узлов+подчиненная с путями, то получается в мастер 50 млн записей, в подчиненной может быть до 20 уровней дерева, т.е. больше 250 млн.допустим такая структура полнотекстовый индекс по полю search id, parent_id, name, search, path -- 1, null, 'всё', null 2, 1, 'компьютеры', 'компьютер computer' -- по нелистовым узлам надо искать? у них может быть поле search не null? 3, 2, 'ноутбуки', 'ноутбук notebook' 4, 2, 'десктопы', 'десктоп desktop' 5, 1, 'телефоны', 'телефон, мобильник, сотовый, phone, mobile' с какими ограничениями надо искать? только по полю search? каков должен быть результат? показывать все найденные элементы и их предков в виде дерева? да предположим такой способ хранения дерева, нет доп. таблицы, где указаны все пути. Когда ищем во всей базе -нет проблемы. Но я хочу найти "полнотекстово" в поддереве, указывая узел под которым искать. В этом случае и надо дополнительно проверить select * from t where string_vector @@ to_tsquery('default','polis & entire | antalya') and and '{"123722"}'::int[] <@ path_array::int[] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 13:02
|
|||
|---|---|---|---|
|
|||
как изменить вектор целых? |
|||
|
#18+
Winnipuhда предположим такой способ хранения дерева, нет доп. таблицы, где указаны все пути. Когда ищем во всей базе -нет проблемы. Но я хочу найти "полнотекстово" в поддереве, указывая узел под которым искать. В этом случае и надо дополнительно проверить select * from t where string_vector @@ to_tsquery('default','polis & entire | antalya') and and '{"123722"}'::int[] <@ path_array::int[]по какому плану, по вашему мнению, постгрес должен наиболее эффективно выполнить такой запрос? поиск по полнотекстовому индексу (по всему дереву), и последующая фильтрация результатов по вхождению в поддерево? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 13:09
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
LeXa NalBat Winnipuhда предположим такой способ хранения дерева, нет доп. таблицы, где указаны все пути. Когда ищем во всей базе -нет проблемы. Но я хочу найти "полнотекстово" в поддереве, указывая узел под которым искать. В этом случае и надо дополнительно проверить select * from t where string_vector @@ to_tsquery('default','polis & entire | antalya') and and '{"123722"}'::int[] <@ path_array::int[]по какому плану, по вашему мнению, постгрес должен наиболее эффективно выполнить такой запрос? поиск по полнотекстовому индексу (по всему дереву), и последующая фильтрация результатов по вхождению в поддерево? однозначно трудно сказать в каком случае оптимальнее, видимо так. Наример, если юзер указывает узел близкий к корню, то под ним будет намного больше потомков, чем войдут в полнотектсовый критерий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 13:45
|
|||
|---|---|---|---|
|
|||
как изменить вектор целых? |
|||
|
#18+
Winnipuhоднозначно трудно сказать в каком случае оптимальнее, видимо так. Наример, если юзер указывает узел близкий к корню, то под ним будет намного больше потомков, чем войдут в полнотектсовый критерийтогда создаете две plpgsql функции bool tr_contains(parent_id int, id int) - является ли parent_id предком для id setof int tr_subtree(parent_id int) - возвращает id всех потомков для данного parent_id в зависимости от объема поддерева можете выбирать один из запросов select * from ( select * from table where string_vector @@ to_tsquery('a') ) where tr_contains(123722,id) -- по полнотекстовому индексу select * from ( select * from tr_subtree(123722) ) where string_vector @@ to_tsquery('a') -- без полнотекстового индекса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 13:52
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
LeXa NalBat Winnipuhоднозначно трудно сказать в каком случае оптимальнее, видимо так. Наример, если юзер указывает узел близкий к корню, то под ним будет намного больше потомков, чем войдут в полнотектсовый критерийтогда создаете две plpgsql функции bool tr_contains(parent_id int, id int) - является ли parent_id предком для id setof int tr_subtree(parent_id int) - возвращает id всех потомков для данного parent_id в зависимости от объема поддерева можете выбирать один из запросов select * from ( select * from table where string_vector @@ to_tsquery('a') ) where tr_contains(123722,id) -- по полнотекстовому индексу select * from ( select * from tr_subtree(123722) ) where string_vector @@ to_tsquery('a') -- без полнотекстового индекса ок, буду пробовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 17:23
|
|||
|---|---|---|---|
|
|||
как изменить вектор целых? |
|||
|
#18+
Глянте на контриб модули intarray и ltree Может пригодится заявленная там функциональность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2007, 18:26
|
|||
|---|---|---|---|
как изменить вектор целых? |
|||
|
#18+
domanixГлянте на контриб модули intarray и ltree Может пригодится заявленная там функциональность? спасибо, посмотрю. Они не включены в 8.3 ? Если руками добавлять, то наверное под виндоуз проблематично будет. Мне надо, чтобы под линуксом и под вин работало... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&tablet=1&tid=2004800]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 209ms |
| total: | 374ms |

| 0 / 0 |
