Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Структура хранение деревьев- задачки. (Дуб) 15/03/2006 - 14:08:54
      Re: Пояснения (Дуб) 15/03/2006 - 14:31:39
      Re: правильный рисунок (Дуб) 15/03/2006 - 14:34:48



From: Дуб - 15/03/2006 - 14:08:54
Subject:Структура хранение деревьев- задачки.
-----------------
Доброго времени суток.
Помогите решить несколько задач. В 2 таблицах хранятся деревья.
В одной узлы,
CREATE TABLE `points` (
`id` int(11) unsigned NOT NULL auto_increment,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
во второй - связи
CREATE TABLE `tree` (
`id` int(11) unsigned NOT NULL auto_increment,
`i_am` int(11) unsigned default NULL,
`my_child` int(11) unsigned default NULL,
`count` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `i_am` (`i_am`),
KEY `my_child` (`my_child`),
CONSTRAINT `tree_fk1` FOREIGN KEY (`my_child`) REFERENCES `points` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `tree_fk` FOREIGN KEY (`i_am`) REFERENCES `points` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
1 запись таблицы хранит 1 связь между 2 вершинами и ее мощность.
Нужно зная номер узла из первой таблицы, вытаскивать
а) номера всех детей
б) номера всех родителей
в) распределение(упорядочивание) вершин по вложенностям .
Как я прикинул на бумаге, структура сама по себе , позволяет хранить множество деревьев в с приличной экономией места.
Ничего , кроме рекурсий в голову не лезет. А хотелось бы обойтись SQL. Очень нужное дело. Заранее спасибо.



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
26957



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |