Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.25;
Скачать: CL | DM;

Вниз

Создать дерево в БД.   Найти похожие ветки 

 
worldmen ©   (2005-08-11 11:51) [0]

Как создать деревья в БД?
Пример Отдел_1
          |- должность1
          |- должность2
      Отдел_2
          |- должность1
          |- должность3


 
Sergey13 ©   (2005-08-11 11:54) [1]

А что конкретно представляет трудность?


 
ANB ©   (2005-08-11 12:10) [2]

В начинающим надо перенести.


 
worldmen ©   (2005-08-11 12:18) [3]

Насколько я знаю дерево создается в одной таблице. И ссылка с одного поля идет на другое (дочернее). Как пишется Create teble...?


 
ANB ©   (2005-08-11 12:20) [4]

Дык у тебя по задаче классический мастер-детал. Тут явно 2 таблицы нужны. Зачем тут дерево ?


 
Reindeer Moss Eater ©   (2005-08-11 12:23) [5]

create table wooden_table(
id number,
pid number,
name varchar(x)
)


 
linesoft ©   (2005-08-11 12:25) [6]

>создается в одной таблице. И ссылка с одного поля идет на другое
Я где-то пропустил что-то интересное !!!?


 
sniknik ©   (2005-08-11 12:27) [7]

стандартно
Create teble tebleName (ID Int, IDParent Int, Name Char(30))

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


 
worldmen ©   (2005-08-11 12:28) [8]

> Тут явно 2 таблицы нужны.
Я так и сделал, но думал деревом будет удобней выводить информацию в компонент TTreeView.


 
ANB ©   (2005-08-11 12:28) [9]


> linesoft ©   (11.08.05 12:25) [6]
- стандартный способ создания деревьев. В оракле можно его обычным запросом развернуть в любую сторону. Тольк циклов быть не должно.


> Reindeer Moss Eater ©   (11.08.05 12:23) [5]
- а констрейнты ?


 
msguns ©   (2005-08-11 12:29) [10]

>ANB ©   (11.08.05 12:20) [4]
>Дык у тебя по задаче классический мастер-детал. Тут явно 2 таблицы нужны. Зачем тут дерево ?

В деревню ! В глушь ! В Саратов ! К тетке !

Структура предмприятия - типичное "дерево". Ну ты даешь ;)))


 
ANB ©   (2005-08-11 12:31) [11]


> worldmen ©   (11.08.05 12:28) [8]
- не будет удобнее. Народ захочет видеть не только названия отделов и должностей - и ты попал. Плюс, таблица в виде дерева плоховато обрабатывается стандартными средствами. Если очень хочешь смотреть в виде дерева - возьми Quantum Grid. Он умеет связки деревом показывать.


 
ANB ©   (2005-08-11 12:32) [12]


> msguns ©   (11.08.05 12:29) [10]
- это структура отделов - дерево. А мешать должности и отделы в одну таблицу - изгал полный.


 
msguns ©   (2005-08-11 12:33) [13]

>sniknik ©   (11.08.05 12:27) [7]
>отделы и должности в разные таблицы и сделать связь.

Должности - отдельная таблица-справочник.
Структура же с любым кол-вом "этажей" (уровнем вложенности) спокойно "влазит" в одну таблицу, типовую структуру (рыбу) которой ты сам же и привел ;)


 
worldmen ©   (2005-08-11 12:36) [14]


> а деревья это всетаки нечто другое, для неопределенного
> количества узлов и неравномерное

Я понял. Спасибо.


 
sniknik ©   (2005-08-11 12:37) [15]

msguns ©   (11.08.05 12:33) [13]
можно всю базу(любую) загнать в одну таблицу... удобнее разносить в разные.

для показанного примера я бы сделал именно 2 таблици, отделы и должности (с полем ссылки на отдел). но никак не дерево.


 
ANB ©   (2005-08-11 12:40) [16]


> msguns ©   (11.08.05 12:33) [13]
- а кто имел что то против ?


 
msguns ©   (2005-08-11 13:17) [17]

Все штатное спокойно влазит в одну таблицу:

ID            - UID записи
PARENTID      - UID узла
ROOTFLAG      - Признак узла (если false, то это строка должн)
DID           - Ссылка на справочник должностей (nil для узлов)
<Категория, разряд, кол-во, оклад по штату и т.д.-для узлов пусто>


 
Nikolay M. ©   (2005-08-11 13:26) [18]

Обчитайся про деревья :)

http://sdm.viptop.ru/articles/sqltrees.html


 
Sergey13 ©   (2005-08-11 13:33) [19]

2[17] msguns ©   (11.08.05 13:17)
>Все штатное спокойно влазит в одну таблицу:
В такой горшок.... тьфу.
В такую таблицу (если ROOTFLAG сделать более емким) можно все что угодно засунуть.
8-)


 
sniknik ©   (2005-08-11 13:49) [20]

msguns ©   (11.08.05 13:17) [17]
да это всем понятно. стандартное дерево (+- пара дополнительных информационных полей ничего не меняет)

но посмотри на пример. внимательно. зачем оно там нужно? только изза желания впихнуть в одну таблицу? не нужно там этого.

вот если бы нужно было держать структуру, типа
группа фирм 1
        |- концерн 1
               |- фирма 1
                     |- Отдел 1
                           |- Должность 1
                           |- Должность 2
                           + неотределенное их количество
                     |- Отдел 2
               |- фирма 2
                     |- Нет структуры только создана
               + неотределенное их количество
               |- Должность 1
               |- Должность 2
        |- концерн 1
               |- фирма 1
               |- фирма 2
               + неотределенное их количество
               |- Отдел 1
        + неотределенное их количество
        |- Отдел 1
        |- Должность 1
группа фирм 2
        |- Должность 1 - структура только создана все фирмы пока "бумажные", должность уже есть, этот человек все организовывает  
+ неотределенное их количество


т.е. структура с разветвленной и неопределенной вложенностью, в офисе "группы фирм" и в "концернах" естественно тоже есть отделы/должности, и есть должности вне отделов непосредственно от "фирмы" и т.д. ну вот если чтото типа этого. то да, двумя руками за дерево. а по тому что в примере максимум 2 связанные таблици (две таблици вместо одной тут это упрошение а не усложнение ;о).


 
Rule ©   (2005-08-11 14:38) [21]

на ibase.ru  достаточно материала про деревья для понимания
http://ibase.ru/devinfo/treedb.htm
http://ibase.ru/devinfo/treedb2.htm
http://sdm.viptop.ru/articles/sqltrees.html

там ещё есть, но этого вполне достаточно для осознания сущности вопроса и реализации на практике решения



Страницы: 1 вся ветка

Текущий архив: 2005.09.25;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.026 c
3-1123678151
Ega23
2005-08-10 16:49
2005.09.25
output-параметры в рекурсивных выборках


1-1125964814
Wood
2005-09-06 04:00
2005.09.25
Про сис. реестр


14-1124922608
TG
2005-08-25 02:30
2005.09.25
Delphi или Microsoft Visual C++,


1-1125850566
hgd
2005-09-04 20:16
2005.09.25
Добавить файл на сервер


3-1123669618
Русланка
2005-08-10 14:26
2005.09.25
Как программно создать новую таблицу в Access