Новости
Документация
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

> Original message text:
> 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. Очень нужное дело. Заранее спасибо.
>
>


From: Дуб - 15/03/2006 - 14:34:48
Subject:правильный рисунок
-----------------
Например, надо хранить дерево такого вида:
(7)
|->11
|------->(3)
__________|->10
__________|-> 9
__________|--------->(5)
______________________|->1
______________________|->2



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

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

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



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