169 похожих чатов

Кто какие решения использует для древовидной структуре данных. Я имею

ввиду, когда у любой записи есть свой родитель. Родитель имеет несколько дочерей. Каждая такая запись имеет несколько полей, помимо id и parent (тип полей Integer). Первое, что я сделал это было 2 таблицы. Родительская и дочерняя. Тут все достаточно просто и легко: прописал MasterSource, MasterField и IndexField. Все заработало на автомате. Но потом потребовалось реализовать несколько или даже неограниченное число вложенностей. Первое, что приходит на ум это вместо организации Master Detail таблиц просто выполнить фильтрацию по полю родитель при соответствующем клике. Есть ли другие идеи для реализации?

13 ответов

25 просмотров
Renat-Suleymanov Автор вопроса

Просто я непосредственно с дизайном БД не так часто сталкивался. Поэтому может что-то упускаю из виду. Поэтому попросил еще идеи

Renat-Suleymanov Автор вопроса

Под фильтрацией имел ввиду типа SELECT * FROM TB_RECORDS WHERE parent = :parent

Ну одна таблица с такой структурой обеспечит дерево. ID | ParentID | Value

Renat-Suleymanov Автор вопроса
YuS
Ну одна таблица с такой структурой обеспечит дерев...

В плане дизайна компонент как все настроить. Я это имел ввиду

Renat Suleymanov
В плане дизайна компонент как все настроить. Я это...

Стандартные даже не знаю, поддерживают ли такое. Я использовал TVirtualStringTree. При старте делал выборку корневых элементов а по мере раскрытия подгружал.

Renat-Suleymanov Автор вопроса
YuS
Стандартные даже не знаю, поддерживают ли такое. Я...

Хотелось готовое. Обвязку под DB решил не замарачиваться

YuS
Стандартные даже не знаю, поддерживают ли такое. Я...

это отложенный фетч, у любого гуевого дерева (у ноды) есть свойство HaseChild, если его выставить в True то будет рисоваться плюсик без фактического заполнения списка чайлдов, а когда уже щелкаем по плюсу на экспандинге фетчим реальные чайлды в узел (типа ленивая загрузка). У нас так-же сделано

Александр (Rouse_) Багель
это отложенный фетч, у любого гуевого дерева (у но...

Да, там только надо лишнее действие сделать, чтоб понять есть ли дети, чтоб плюсик нарисовать.

Renat Suleymanov
Хотелось готовое. Обвязку под DB решил не замарачи...

Тут vtv напрашивается сам. По поводу селектов - вот статья с разумным мыслями, может пригодится http://www.ibase.ru/treedb/

https://t.me/Delphi_Lazarus/103498 например

Renat-Suleymanov Автор вопроса

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта