Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Хранение дерева данных в базе [D7]


Страницы:   1 2

Shade_ ©   (2004-05-16 02:33:00) 

1 Каким образом хранится дерево данных в базе данных?
2 Какой тип таблиц для этого используется?
3 Какой движок БД нужен?
4 За структурой дерева смотрит БД или ручками?


muk07   (2004-05-17 08:38:00) [21]

to Ihor Osov'yak :
Представьте себе классификацию товаров. На верхних уровнях - категории, листья - конкретные товары. Я должен знать категория это или товар. Тот факт, что узел - лист еще не означает что это товар. Возможно еще не завершен ввод ветви дерева.


Ihor Osov'yak   (2004-05-17 02:57:00) [22]

2 [4] Petr V. Abramov ©   (17.05.04 02:39)

Ну почему же? Выборка на тему - "если ли детки" будет выполнятся быстро - поле все же индексированное.  Если все же вопрос в быстродействии - я бы все же дал предпочтение непротиворечивой структуре и отсутствием соотв. геморою по сравнению с сомнительным выиграшем в быстродействии. В крайнем слцчае просто бы сделал вычисляемое поле, или работал бы через View, там, где такое поля якобы бы нужно.
Если же нужно некий флаг, говорящий "деток быть не должно" - имя поля следовало дать бы по другому, чтобы вопросов не возникало, например - disableChild.. Или что-то в этом роде. В английском я не очень, возможно есть более красивые варианты наименований..


Petr V. Abramov   (2004-05-17 02:39:00) [23]

Ihor Osov'yak ©   (17.05.04 02:04) [3]
IMHO, не всегда :)


Ihor Osov'yak   (2004-05-17 02:04:00) [24]

2 muk07  

Имхо, bit IsLeaf - лишнее.


muk07   (2004-05-16 07:53:00) [25]

1)Пример - классификация.
в нотации Transact SQL:
create table Tree(
 Self_ID identity(1,1) primary key, -- собственнный ключ
 Parent_ID int null foreign key references Tree(Self_ID),  -- ссылка на родительскую запись. null - потому что корень не имеет родителя
 bit IsLeaf, -- запись является листом - дальше дерево не ветвится
 Info <любой тип> -- прочие данные
)

2)типе таблиц вопрос непонятен - обычная таблица
3)Что такое движок? СУБД - любая
4)Тоже непонятно - что значит "смотреть за структурой"
3) В приведенном примере СУ


muk07   (2004-05-16 07:53:00) [26]

1)Пример - классификация.
в нотации Transact SQL:
create table Tree(
 Self_ID identity(1,1) primary key, -- собственнный ключ
 Parent_ID int null foreign key references Tree(Self_ID),  -- ссылка на родительскую запись. null - потому что корень не имеет родителя
 bit IsLeaf, -- запись является листом - дальше дерево не ветвится
 Info <любой тип> -- прочие данные
)

2)типе таблиц вопрос непонятен - обычная таблица
3)Что такое движок? СУБД - любая
4)Тоже непонятно - что значит "смотреть за структурой"
3) В приведенном примере СУ


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо