Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
29.11.2004, 17:38
|
|||
|---|---|---|---|
|
|||
Древовидное отображение. Подскажите идею. |
|||
|
#18+
Одно из требований к проектируемой системе - отображение в древовидной форме данных. Данные структурированы примерно так: Свойства объекта: -Географические --улица --дом --... -Физические --потолок ---навесной ---обычный ---.... --пол -... Для того, чтобы показать эти свойства в виде дерева, я построил таблицу tree: id int name varchar() parent int Таблица main, в которой хранятся данные об объектах : id int dom varchar() ... т.е., все свойства. Я не знаю, как связать таблицу tree и main, чтобы обеспечить такую функциональность в клиенте: щелкает клиент по дереву на самый верхний узел (например "Географические") и ему открывается например грид, в котором все свойства географические. Но щелкая по самому нижнему в иерархии свойству- получает значения только этого свойства (например - "пол"). И вообще, возможно ли такое реализовать? Может быть, разносить данные о каждом верхнем уровне (Географические, Физические, ...) в разные таблицы и делать потом таблицу tree главной, а остальные - подчиненными ей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2004, 17:46
|
|||
|---|---|---|---|
Древовидное отображение. Подскажите идею. |
|||
|
#18+
Таблица Objects - главная в ней объекты строятся иерархически Таблица Properties - подчиненная связана чкрез id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2004, 17:51
|
|||
|---|---|---|---|
|
|||
Древовидное отображение. Подскажите идею. |
|||
|
#18+
Я правильно понял: Objects - это моя tree? В ней у меня хранится инфа о структуре дерева. Но как связать её с подчиненной таблицей, если в подчиненной не должно быть свойств верхнего уровня? (Географические, Физические)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2004, 18:11
|
|||
|---|---|---|---|
Древовидное отображение. Подскажите идею. |
|||
|
#18+
один из вариантов: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2004, 18:22
|
|||
|---|---|---|---|
|
|||
Древовидное отображение. Подскажите идею. |
|||
|
#18+
Да, но как реализовать вот это? Savkaщелкает клиент по дереву на самый верхний узел (например "Географические") и ему открывается например грид, в котором все свойства географические. Но щелкая по самому нижнему в иерархии свойству- получает значения только этого свойства (например - "пол"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2004, 10:03
|
|||
|---|---|---|---|
Древовидное отображение. Подскажите идею. |
|||
|
#18+
2 Savka ИМХО, ты слегка не в ту сторону роешь. Иногда имеет смысл в дереве добираться например до конкретного дома по цепочке а-ля "Город-Район-Улица-Дом-Объект". А какой смысл в показе только пола например? Тем паче, что инфа по конкретному объекту все равно уже скорее всего целиком на клиенте. В общем интерфейс типа Проводника. Слева дерево адреса, справа подробная инфа по выбранному объекту. Хотя может быть я не понял задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2004, 10:18
|
|||
|---|---|---|---|
|
|||
Древовидное отображение. Подскажите идею. |
|||
|
#18+
Серега, это как раз то, что мне нужно. Я просто неверно сформулировал задачу. Как в таком случае должна выглядеть структура базы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2004, 10:28
|
|||
|---|---|---|---|
|
|||
Древовидное отображение. Подскажите идею. |
|||
|
#18+
Я, правда, пока не совсем себе представляю, какой толк в таком отображении данных. Вот, к примеру, надо человеку посмотреть последних 10 введнных объектов, или все объекты, которые находятся по такой то улице. Тогда что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2004, 10:42
|
|||
|---|---|---|---|
Древовидное отображение. Подскажите идею. |
|||
|
#18+
вообще не плохо было бы написать еще какой сервер бд используется если оракл то там есть иерархические запросы с помощью которых все очень просто делается делаешь id integer obj_type тип объекта если нужно obj_name название если нужно parent_id если нужно корень там где parent_id = null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2004, 10:46
|
|||
|---|---|---|---|
Древовидное отображение. Подскажите идею. |
|||
|
#18+
SavkaКак в таком случае должна выглядеть структура базы? Ну, это тебе лучше знать. Схематично (как вариант) 1.Адреса объектов ИД ИДродителя Наименование 1.Объекты ИД ИДадреса Реквизиты (вот тут надо думать как организовать - то-ли полей насоздавать с избытком, то ли ссылки на "части объекта" (отдельная(ые) таблица(ы)) типа "кухня","комната", "санузел" и т.п.) Вот только сомневаюсь я, что древо - это хороший способ ( в данном случае ) с точки зрения производительности. Ибо деревья - это довольно тормозная и неудобная штука в плане программирования, особенно для групповых операций . Может тебе лучше сделать адреса на основе КЛАДРа или типа того? Т.е. весь адрес по отдельным полям (ссылками на справочник адресов) забить в каждый объект (и город и район и улицу). И при выборе в каждом уровне фильтровать последующий уровень. Проще будет в дальнейшем, ИМХО. Например найти все варианты по определенному району с кухней>10м. Меньше нормализации - больше нормальности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2004, 10:48
|
|||
|---|---|---|---|
Древовидное отображение. Подскажите идею. |
|||
|
#18+
В догонку. Визуально, второй "мой" вариант, в принципе можно нарисовать как дерево. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2004, 10:57
|
|||
|---|---|---|---|
|
|||
Древовидное отображение. Подскажите идею. |
|||
|
#18+
Серега 1.Адреса объектов ИД ИДродителя Наименование 1.Объекты ИД ИДадреса Реквизиты (вот тут надо думать как организовать - то-ли полей насоздавать с избытком, то ли ссылки на "части объекта" (отдельная(ые) таблица(ы)) типа "кухня","комната", "санузел" и т.п.) Получается, что эти две таблицы надо связывать по ИД. И если кто-то добавляет новый объект, то на каждом клиенте надо будет перестраивать дерево. И, что еще хуже, при разрастании самой базы - все это будет изрядно тормозить. (Мне так кажется). Но вот хочется клиенту отображения типа проводника и все тут. А что такое "КЛАДР"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2004, 10:58
|
|||
|---|---|---|---|
|
|||
Древовидное отображение. Подскажите идею. |
|||
|
#18+
Simonвообще не плохо было бы написать еще какой сервер бд используется Используется PostgreSQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2004, 11:14
|
|||
|---|---|---|---|
Древовидное отображение. Подскажите идею. |
|||
|
#18+
SavkaИ, что еще хуже, при разрастании самой базы - все это будет изрядно тормозить. (Мне так кажется). Будет однозначно. Может и не катастрофически (как сделаешь ), но будет. SavkaНо вот хочется клиенту отображения типа проводника и все тут. Дерево можно нарисовать и не на деревянной структуре. SavkaА что такое "КЛАДР"? Всероссийский классификатор адресов. Можно найти на сайтах налоговиков да и вообще в инете дофига. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=32&mobile=1&tid=1546153]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
128ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 274ms |
| total: | 495ms |

| 0 / 0 |
