Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.223.196.171] |
|
Данный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
Добрый день, коллеги.
У меня есть данные, представленные в виде дерева. Надо сохранить в БД. Как? ЗЫ. У меня уже есть решение, но хотелось бы услышать, как это реализовали бы вы. |
Сообщ.
#2
,
|
|
|
Дерево может быть переведено в "плоскую таблицу". Для этого надо произвести следующие действия:
1) Каждый узел должен получить уникальный номер 2) Сделать таблицу типа ---------------------------------------------------------------------------- Уникальный номер||Ссылка на родительский номер||Значение узла ---------------------------------------------------------------------------- PS. Вообще-то хранить древовидные структуры в таблицах не очень хорошо, для этих целей например XML придумали |
Сообщ.
#3
,
|
|
|
Я именно так и сделал. Про XML, кстати, тоже не забыл
|
Сообщ.
#4
,
|
|
|
http://www.sql.ru/search/search.asp?wci=rcdoc&url=http\%3A\%2F\%2Fwww\%2Esql\%2Eru\%2Fforum\%2Factualthread\%2Easpx\%3Fbid\%3D\%2D99\%26tid\%3D12217&ex=1&pool_size=10&is=ex\%5Fsql&context=\%C4\%E5\%F0\%E5\%E2\%FC\%FF&contextcond=phrase&title=1&orderby=\%24sysdate&doc_per_page=10&output=full
|
Сообщ.
#5
,
|
|
|
Усложним задачу: нужно иметь возможность не только менять родителя для ноды среднего уровня, но и сортировать детей одного родителя. Ну как?
ЗЫ. XML пока не трогаем, только "плоскую" таблицу. |
Сообщ.
#6
,
|
|
|
А что квери типа "select... Where ... Order By..." Делать запретили? Что то я не пойму, что именно не получается сделать обычной кверёй?
|
Сообщ.
#7
,
|
|
|
order by... что??? айди элемента?? Не прокатит.
|
Сообщ.
#8
,
|
|
|
Что-то я не пойму чего надо, отсортировать узлы одного родителя в алфавитном порядке? Пожалуйста:
<br>Select ЗначениеУзла <br>Where СсылкаНаРодительскийНомер=ЧтоТо<br>Order by ЗначениеУзла<br> Отсортировать всё дерево в алфавитном порядке? Пожалуйста: <br>Select ЗначениеУзла <br>Order by СсылкаНаРодительскийНомер, ЗначениеУзла<br> |
Сообщ.
#9
,
|
|
|
Надо не сортировать в алфавитном порядке, а дать возможность пользователю сортировать узлы мышой. В принципе, я решил это через дополнительное поле, указывающее относительный индекс элемента. Но что-то мне это не очень понравилось, может есть какие-то еще идеи?
|
Сообщ.
#10
,
|
|
|
Добавь ещё одно поле, которое будет задавать порядок.
|