| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Прибавить /отнять число ко всем веткам дерева |
| Автор: fridkaratel 11.12.2010, 18:08 | ||
| В-общем, интересует такая задача... и хочется получить ответ от специалистов в этой области... 1. Есть дерево (не важно, что оно содержит)... Обычное и типичное дерево... 2. Каждый node дерева содержит количество входящих в него элементов 3. Элементов может быть, думаю, до 10 000, уровень вложенности, до 7000 (скорей всего). Суть задачи: При добавлении элемента автоматически увеличивать цифру с количеством элементов у всех его родителей... В текущей БД: 1. Родители хранятся по типу "0.3.15.27.32.", 2. Дети выбираются по запросу LIKE "%.PID.%" 3. Принцип nested sets не используется, так как дерево часто подвергается изменениям Как же наилучшим способом решить такую задачу? Вижу вариант - делать просто:
Но думаю, есть какие-то другие и более рациональные решения |
| Автор: skyboy 11.12.2010, 19:12 |
разве это не увеличит счетчик у всех детей вместо всех родителей? Добавлено через 24 секунды "рациональнее" не получится. структура хранения данных не позволяет. |
| Автор: fridkaratel 11.12.2010, 19:23 | ||||
| @skyboy: Блин, точно Эх, а как по-другому можно? А такой вариант?
|
| Автор: skyboy 12.12.2010, 19:35 | ||
вот это - "все потомки узла". при наличии индекса на это поле, может, и не будет сильно тормозить. |
| Автор: fridkaratel 15.12.2010, 16:42 |
| Получается, сделать вторым вариантом? И добавить индекс по столбцу Parents...? |