Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Sortierfunktion für Treestruktur (https://www.delphipraxis.net/87603-sortierfunktion-fuer-treestruktur.html)

Gruber_Hans_12345 5. Mär 2007 10:46

Re: Sortierfunktion für Treestruktur
 
doch, bekomme immer genau die reihenfolge hin (aufgrund des prev_id kenne ich immer den vorgänger, und weiss wie der tree wieder aufzubauen ist)

da ein sehr wichtiger punkt einfach ist, das der tree schnell synchronisiert werden muß, und daher so wenig SQL Updates wie möglich passieren sollen, wenn der user was ändert, habe ich den weg mit dem prev_id gewählt

in dem Baum (ist eine Stückliste für mechanische fertigung) gibt es bereiche, wo es bis zu 500 Elemente in einem einzigen Zweig sind, wenn da dann der User oben nur ei einziges Element einfügt, dann müssen 500 UPDATES durchgeführt werden, auf jedem weiterem Client der sich diese Stückliste ansieht, müssen 500 Select Anweisungen gemacht werden.

in meinem Fall mit dem Prev_ID muß bei dem einfügen oben in der List oder in der Mitte 1 INSERT und maximal 2 UPDATE (wenn ganz oben, dann nur 1 UPDATE) gemacht werden, alle Clients müssen maximal 3 SELECT Anweisungen machen .... und alle sind wieder auf den akutellsten Stand ... das ist der grund für mein prev_id

marabu 5. Mär 2007 10:49

Re: Sortierfunktion für Treestruktur
 
Hallo Hans,

der von mir vorgestellte (nicht erfundene) Ansatz zählt zu den best practices im relationalen Bereich. An die Stelle von PREV_ID tritt SEQ (oder SI, siehe Link) als vom Benutzer festgelegte Ordnungsnummer und auch bei diesem Ansatz werden nur zwei UPDATE-Statements benötigt um die Ordnung von beliebig vielen Datensätzen neu zu regeln. Schau dir mal die Stored Procedure MoveRecs() an.

Ganz glücklich bist du mit deinem Ansatz ja sicher nicht, sonst hättest du diesen thread wohl nicht eröffnet - oder?

Freundliche Grüße

Gruber_Hans_12345 5. Mär 2007 11:44

Re: Sortierfunktion für Treestruktur
 
ja, in gewisser weise haste schon recht marabu, aber mein problem mit dieser lösung der sortierung ist einfach, das ich dann 500 datensätze habe die ich zu allen anderen clients synchronisieren muß, wobei es eigentlich nur 2 oder maximal 3 sind, die sich wirklich geändert haben ...

hab natürlich auch das problem, das dieses system schon läuft (und auch recht gut) das einzige ist nur, das mir meine sortierroutine nicht gefällt, da diese ja extremst rekursiv ist und extrem schlecht optimiert ist ... und dachte vielleicht gibt es irgendwo ansätze wie man mit parentid und previd eine liste sortieren kann ...

beim nächsten projekt werde ich es mir dann im vorfeld überlegen, ob ich den ansatz verwende, das ich statt previd einen sortierindex mitspeichere, aber in diesem, werde ich das system nicht mehr ändern können ...

omata 6. Mär 2007 02:53

Re: Sortierfunktion für Treestruktur
 
war blödsinn...


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:41 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz