Форум: "Базы";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];
ВнизСоздать дерево в БД. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.038 c