|
Дерево в БД ???
|
|||
---|---|---|---|
#18+
Нужно в базу поместить бесконечную структуру типа дерево с бесконечным кол-ом ветвей (типа дерева каталогов в проводнике) и умудриться с ним работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2001, 18:09 |
|
Дерево в БД ???
|
|||
---|---|---|---|
#18+
Ну и что сложного-то хранишь 3 поля id, idродителя, имя узла ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2001, 09:17 |
|
Дерево в БД ???
|
|||
---|---|---|---|
#18+
а вот и обламайся: насос1 - -----статор- -------------гайка_статора -----ротор- -------------гайка_ротора -----гайка_заковыристая_1 насос2 - -----статор- -------------гайка_статора -----ротор- -------------гайка_ротора -----гайка_заковыристая_2 дык вот: статор и ротор у насосов одинаковые, только гайки у них разные, если по твоему то у статора будет два родителя насос1 и насос2, на всех родителей id не напасешься :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2002, 17:15 |
|
Дерево в БД ???
|
|||
---|---|---|---|
#18+
Привет! Статью про деревья читайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2002, 19:58 |
|
Дерево в БД ???
|
|||
---|---|---|---|
#18+
Все просто, я сделал так: все дерево хранится в одной таблице с 2-мя полями 1 - так называемый классификатор 2 - название элемента Принцип следующий: 001. - видеонаблюдение 002. - контроль доступа 001.001. - видеонаблюдение->видеомониторы 001.002. - видеонаблюдение->видеокамеры 002.001. - контроль доступа->контрольные панели 001.001.001. видеонаблюдение->видеомониторы->Samsung 001.001.002. и так далее Работает много быстрее чем с несколькими таблицами и вообще удобно ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 10:18 |
|
Дерево в БД ???
|
|||
---|---|---|---|
#18+
Одной таблицей можно обойтись если все ветки уникальны, т.е. имеют каждый одного родителя. Если некоторые узлы могут иметь несколько родителей (см.seroga Guest) то необходимо 2 таблы. Первая содержит перечень сущностей, вторая их связи по типу id, id_parent, id_table1(FK на первую таблу). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 10:49 |
|
Дерево в БД ???
|
|||
---|---|---|---|
#18+
Если у узла может быть несколько родителей - это не дерево, это сеть... Там все намного хуже :(( ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2002, 15:27 |
|
Дерево в БД ???
|
|||
---|---|---|---|
#18+
2noir > Если у узла может быть несколько родителей - это не дерево, это сеть... Там все намного хуже :(( Согласен, но эту сеть можно загнать в дерево и работать с ним без проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2002, 10:30 |
|
Дерево в БД ???
|
|||
---|---|---|---|
#18+
Ладно, это вообще-то чисто терминологический вопрос к БД отношения не имеющий... Но все-таки называть деревом структуру, по своей сути деревом не являющуюся плохо - возможна путаница. Ты ведь когда хранишь дерево в массиве, не называешь "массивом" и само дерево? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2002, 11:48 |
|
Дерево в БД ???
|
|||
---|---|---|---|
#18+
2noir >Но все-таки называть деревом структуру, по своей сути >деревом не являющуюся плохо - возможна путаница. Ты >ведь когда хранишь дерево в массиве, не >называешь "массивом" и само дерево? Да нет, ты не понял меня. Если работать с сущностями у которых несколько родителей - это сеть. А вот если работать со ссылками на сущность то по ссылкам можно построить нормальное сбалансированное дерево. Ведь ссылок то на одну сущность может быть сколько угодно. И никакой путаницы - все просто и логично. Все дело в структуре данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2002, 09:12 |
|
|
start [/forum/topic.php?fid=40&msg=32058810&tid=1581121]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 116ms |
0 / 0 |