BG Development


  Reply to this topicStart new topicStart Poll

> Модел на дървовидна структура, Списък на съседство или вложени множеств
thrawn
Публикувано на: 25-12-2018, 22:02
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2231
Регистриран на: 17.01.17



Весела Коледа на всички.

И едно коледно въпросче, което ме зачовърка днес.
Има ли все още смисъл да се реализират дървета с вложени множества? Единственото им предимство е, че позволяват работа с цели дървета / разклонения. Но вече рекурсивните заявки са си част от стандартния sql, така че списъкът на съседство май печели.

Какво мислите, струва ли си усилието да се поддържат вложени множества в съвременна база данни?
PMEmail Poster
Top
alphasoftwarebg
Публикувано на: 25-12-2018, 22:21
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 575
Регистриран на: 23.12.12



Струва си.

Честита Коледа, здраве, щастие и благоденствие!

Това мнение е било редактирано от alphasoftwarebg на 25-12-2018, 22:22


--------------------
zzz.bg - клиент/сървър за базата данни "ЗЗЗ база"
zzz.bg/zzzbase-micro - микро база данни за вграждане "ЗЗЗ база - микро" - без транзакции
zzz.bg/zzzbase-mini - мини база данни за вграждане "ЗЗЗ база - мини" - с транзакции
PMEmail PosterUsers Website
Top
thrawn
Публикувано на: 26-12-2018, 10:06
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2231
Регистриран на: 17.01.17



Е дай с повече думи де, така не помагаш особено.
Трябва да направя едно дърво и често ще се налага да се работи с цели части от него. Та се замислих как да го реализирам за да е максимално удобно за работа.

Основното ми притеснение с вложените множества е, че там е тегаво да се правят простите операции - извличане на родител или директни наследници и местене на възли. И докато за първия проблем има просто решение (добавя се поле за родител) то за втория си е триково да се реализира.

Ако добавя поле описващо родителя, технически се получава и списък на съседство. Та при положение, че има рекурсивни заявки какво бих спечелил ако използвам вложени множества само за удобството да взема лесно част от дървото?

Да не говорим, че с тия индекси се нарушава цялостта на данните в базата данни.
PMEmail Poster
Top
alphasoftwarebg
Публикувано на: 26-12-2018, 10:23
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 575
Регистриран на: 23.12.12



QUOTE (thrawn @ 26-12-2018, 10:06)
Е дай с повече думи де, така не помагаш особено.
Трябва да направя едно дърво и често ще се налага да се работи с цели части от него. Та се замислих как да го реализирам за да е максимално удобно за работа.

Основното ми притеснение с вложените множества е, че там е тегаво да се правят простите операции - извличане на родител или директни наследници и местене на възли. И докато за първия проблем има просто решение (добавя се поле за родител) то за втория си е триково да се реализира.

Ако добавя поле описващо родителя, технически се получава и списък на съседство. Та при положение, че има рекурсивни заявки какво бих спечелил ако използвам вложени множества само за удобството да взема лесно част от дървото?

Да не говорим, че с тия индекси се нарушава цялостта на данните в базата данни.

Местенето на възли не е толкова трудно, просто променяш родителя на децата + ... По-скоро проблема при теб е, че трябва да реализираш дърво в SQL бази данни, които не са най-ефективните за подобен род структури.

По-ефективно е вместо да променяш родителя на децата да промениш идентификатора на новия родител да е равен на стария, а на стария родител да зададеш новия идентификатор.

Това мнение е било редактирано от alphasoftwarebg на 26-12-2018, 10:25


--------------------
zzz.bg - клиент/сървър за базата данни "ЗЗЗ база"
zzz.bg/zzzbase-micro - микро база данни за вграждане "ЗЗЗ база - микро" - без транзакции
zzz.bg/zzzbase-mini - мини база данни за вграждане "ЗЗЗ база - мини" - с транзакции
PMEmail PosterUsers Website
Top
thrawn
Публикувано на: 26-12-2018, 10:27
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2231
Регистриран на: 17.01.17



Е така де, баш за реализация в релационна база данни става дума.

При вложените множества няма явни родители. Там се работи с множества и операциите с възли са свързани с промени на границите на "всички" възли.

Това мнение е било редактирано от thrawn на 26-12-2018, 10:29
PMEmail Poster
Top
alphasoftwarebg
Публикувано на: 26-12-2018, 10:36
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 575
Регистриран на: 23.12.12



Може би трябва да се замислиш, дали последното изречение от предходния ми пост не ти дава ефективно решение на проблема, който решаваш!


--------------------
zzz.bg - клиент/сървър за базата данни "ЗЗЗ база"
zzz.bg/zzzbase-micro - микро база данни за вграждане "ЗЗЗ база - микро" - без транзакции
zzz.bg/zzzbase-mini - мини база данни за вграждане "ЗЗЗ база - мини" - с транзакции
PMEmail PosterUsers Website
Top
thrawn
Публикувано на: 26-12-2018, 11:11
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2231
Регистриран на: 17.01.17



Кой идентификатор бе човек? При тая постановка няма идентификатор на родител а начало и край на включеното множество. А операциите по добавяне, триене и местене на възли се извършват само с промяна на множествата.
PMEmail Poster
Top
alphasoftwarebg
Публикувано на: 26-12-2018, 11:23
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 575
Регистриран на: 23.12.12



Въпрос на гледна точка, без значение на подхода/постановката винаги има родител/и и деца.


--------------------
zzz.bg - клиент/сървър за базата данни "ЗЗЗ база"
zzz.bg/zzzbase-micro - микро база данни за вграждане "ЗЗЗ база - микро" - без транзакции
zzz.bg/zzzbase-mini - мини база данни за вграждане "ЗЗЗ база - мини" - с транзакции
PMEmail PosterUsers Website
Top
thrawn
Публикувано на: 27-12-2018, 15:19
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2231
Регистриран на: 17.01.17



Направих го със списък на съседство и ще ползвам рекурсивни заявки. Вложените списъци не си струват усилието за поддръжка явно.
PMEmail Poster
Top
thrawn
Публикувано на: 27-12-2018, 16:19
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2231
Регистриран на: 17.01.17



QUOTE (thrawn @ 27-12-2018, 15:19)
Направих го със списък на съседство и ще ползвам рекурсивни заявки. Вложените списъци не си струват усилието за поддръжка явно.

Вложените списъци да се чете Вложените множества icon_smile.gif
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0