powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД для дерева объектов
18 сообщений из 18, страница 1 из 1
Структура БД для дерева объектов
    #37759235
relief
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.МС СКЛ.
Подскажите лучше спроектировать таблицы.

есть

Объекты-деревья с разной глубиной вложенности типизации.
Например.
Код: sql
1.
2.
3.
ТС - Машина - Легковая - Седан - Передний привод 
ТС - Машина - Грузовая - Самосвал
ТС - мотоцикл - без каляски



также есть таблица Транспортные средства, в которой надо хранить ссылку на то, какой это тип ТС

как спроектировать таблицы и отношения, чтобы юзер на сайте мог выбрать любой уровень типизации и увидеть все транспортные средства?
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37759305
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://ibase.ru/develop.htm#tree
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37759343
relief
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov http://ibase.ru/develop.htm#tree


спасибо нашел тут
http://stackoverflow.com/questions/1129615/how-to-design-database-for-binary-tree

а именно это



id | parentid | name
---------------------
1 | null | node1
2 | 1 | node2
3 | 1 | node3
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37759355
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reliefа именно это
Это простейший вариант, и, вполне возможно, не самый удачный для Вашей задачи.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37759416
relief
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovreliefа именно это
Это простейший вариант, и, вполне возможно, не самый удачный для Вашей задачи.


а можно пример неудачности?
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37759482
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reliefа можно пример неудачности?
Задача "вывести все объекты, принадлежащие заданному узлу и всем его потомкам" решается
для этой структуры довольно медленно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37760715
relief
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovreliefа можно пример неудачности?
Задача "вывести все объекты, принадлежащие заданному узлу и всем его потомкам" решается
для этой структуры довольно медленно.


а вы можете, зная мой пример, дать точную ссылку что надо читать из того что вы дали?
а то как всегда надо было вчера, а время читать всё нет.

спасибо
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37760766
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reliefа вы можете, зная мой пример, дать точную ссылку что надо читать из того что вы дали?

Не могу. Если "надо было вчера" - делай как придётся. Пох на скорость работы и объём кода.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37761329
relief
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovreliefа вы можете, зная мой пример, дать точную ссылку что надо читать из того что вы дали?

Не могу. Если "надо было вчера" - делай как придётся. Пох на скорость работы и объём кода.


остановился всё таки на другом варианте здесь
я вот только думаю. если у меня есть например такая таблица для Транпспортных средств и есть таблицы ВладельцыТС, то не лучше ли мне добавить в таблицу ТС еще столбец ID и в таблице ВладельцыТС хранить именно ID ТС, вместо Kia, например?
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37761363
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reliefдобавить в таблицу ТС еще столбец ID и в таблице ВладельцыТС хранить именно ID ТС

О-о-о... "Один автомобиль на человека". Какое жёсткое социалистическое ограничение...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37761383
s u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЗадача "вывести все объекты, принадлежащие заданному узлу и всем его потомкам" решается
для этой структуры довольно медленно.


а что значит "медленно"? "медленно" по сравнению с какой "структурой"?
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37761410
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s u"медленно" по сравнению с какой "структурой"?

По сравнению со "структурой" у которой в качестве ключа ноды дерева используется полный
путь. Для такой структуры выборка всех наследников это один LIKE, использующий index range
scan.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37761415
relief
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovreliefдобавить в таблицу ТС еще столбец ID и в таблице ВладельцыТС хранить именно ID ТС

О-о-о... "Один автомобиль на человека". Какое жёсткое социалистическое ограничение...


ну сделаю таблицу многие ко многим.
вопрос был в другом. использовать id число или нет?
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37761459
s u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovs u"медленно" по сравнению с какой "структурой"?

По сравнению со "структурой" у которой в качестве ключа ноды дерева используется полный
путь. Для такой структуры выборка всех наследников это один LIKE, использующий index range
scan.


а если нода переезжает? придется все ключи обновлять?
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37761476
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s uа если нода переезжает? придется все ключи обновлять?

Да. Но это крайне редкое явление сводится к простому REPLACE(), которое опять же
использует индекс.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37761527
s u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovДа. Но это крайне редкое явление сводится к простому REPLACE(), которое опять же
использует индекс.


согласен, что самосвал врядли передет из разряд грузовых в группу легковых...
имхо все зависит от бизнес-логики (как часто ноды передвигаются), кол-ва пользователей... делать replace в 100500 ключах при таком же кол-ве пользователей... хм...
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37761620
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s uделать replace в 100500 ключах при таком же кол-ве пользователей... хм...

За всё надо платить. Скорость выборки за цену модификаций.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Структура БД для дерева объектов
    #37762436
relief
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reliefостановился всё таки на другом варианте здесь


а у меня вопрос: как узнать по этому методу вершины?
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД для дерева объектов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]