Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2013, 23:56   #1
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию Древовидное хранение информации.

Вообщем я не знаю как организовать древовидное хранение информации.
Т.е. есть много дисциплин, в которых много разделов, в которых много тем, в которых много задач.
Как организовать хранение всей этой инфы, чтобы не запутаться?
Может БД? Но как? С БД из дельфей раньше не работал, но чуть-чуть представляю, что она из себя представляет.
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 26.03.2013, 06:41   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Как организовать хранение всей этой инфы, чтобы не запутаться? Может БД?
Я бы сказал - только БД! И да, то, что Вы назвали древовидным хранением на самом деле называется реляционная база данных. Древовидное - это имхо когда дерево в одной таблице хранится.

Забейте в гугле запрос на тему "Разработка реляционных БД в Дельфи" и читайте до просветления. Тема слишком обширная, чтоб укладываться в ветку на форуме, когда изначально знаний ноль. Легче и быстрее - если есть конкретные вопросы.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 26.03.2013, 09:19   #3
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Если ты под древовидным отображением данных понимаешь использование компанента TreeView, то вам тут полюбому база нужна, если Treeview то вам нужно хранит ьв базе в одной таблце желательно данные об этом дереве.
таблица будит состоять как минимум из 3 полей id, id_p, name
id- номер ветки дерева
id_p - это номер родителя к которой пренадлежит ветка
name - название ветки
Ну а дальше что душа пожелает.
Данную структуру на мой взгляд правильно использовать когда много вложений дальше 2-3, а если есть тест и в нём куча тем, то можно обойтись и просто DBGrid`ом...
Dozent вне форума Ответить с цитированием
Старый 26.03.2013, 09:28   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
нужно хранит ьв базе в одной таблце желательно данные об этом дереве.
Не очень то и удобно с такой таблицей работать, да и далеко не каждое СУБД поддерживает иерархические запросы. Лучше в нескольких таблицах, имхо
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.03.2013, 10:03   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну вообще, если база не сильно толстая, то можно и через xml работать...
Цитата:
Т.е. есть много дисциплин, в которых много разделов, в которых много тем, в которых много задач.
Много это сколько? Если каждое наименование (раздел, дисциплина и т.д.) меньше тысячи, то это не так уж и много.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 26.03.2013, 15:25   #6
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Utkin, я имел ввиду что много вложений. Допустим есть дисциплина, в ней несколько разделов (семестры, курсы и т.п.) в этих разделах есть подразделы допустим темы в темах есть разделение на отдельные тесты, если просто Дисциплина и в ней сразу набор тестов то можно через DBGrid (я так считаю, в любому случае ясность внесёт автор).
А что сложного узнать ади элемента на котором находимся и сделать запрос в базу отфильтровав ?

Select * from MyTable where p_id=Значению;

Сразу покажет какие ветки принадлежат текущей...
Dozent вне форума Ответить с цитированием
Старый 26.03.2013, 18:41   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Utkin, я имел ввиду что много вложений.
Я тоже это имел ввиду . Просто я смотрю на проблему с другой стороны. xml изначально "деревянный формат" потому модель получается проще (в голове), а уж что выбирет ТС его право.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Долговременное хранение информации Arigato Компьютерное железо 22 24.06.2012 18:29
рекурсия и хранение информации Rekky Общие вопросы C/C++ 7 27.06.2011 19:32
Хранение информации в памяти Claster Помощь студентам 0 21.03.2011 17:54
Хранение информации xStill JavaScript, Ajax 7 29.11.2010 12:01
Хранение текстовой информации diliana Софт 11 23.12.2009 13:24