[drupal-devel] menu memory usage
Bèr Kessels
ber at webschuur.com
Mon Oct 24 10:58:38 UTC 2005
you just described the general relation system :)
read more on:
http://drupal.org/node/34168
http://www.webschuur.com/relations_system
http://drupal.org/node/28480
and have a look at the tables at
http://drupal.org/node/28480#comment-42850
(and the commetn above it for some descriptions)
Ber
Op maandag 24 oktober 2005 12:30, schreef Konstantin Käfer:
> Hello,
>
> recently, I have been experimenting with nested sets. Nested sets
> provide a rather simple technology to store huge (menu) trees in a
> database without having to loop through them using recursion. As
> recursion eats more time as the tree grows large and if there are more
> levels, it is not adviced to use this technology in relational databases.
>
> The nested set (or nested tree) works by adding two meta values to the
> record, one left value and one right value. Let's take the following
> menu structure:
>
> root [1/24]
> -- create content [2/7]
> -- page [3/4]
> -- story [5/6]
> -- my account [8/9]
> -- administer [10/23
> -- access control [11/12]
> -- settings [13/20]
> -- content types [14/15]
> -- posts [16/17]
> -- users [18/19]
> -- users [21/22]
>
> For an extensive example, see
> http://www.phpriot.com/d/articles/php/application-design/nested-trees-1/ind
>ex.html.
>
> The left and right values are in the square brackets, the first is the
> left one and the second the right one. The advantage is, that it is easy
> to obtain all necessary leafs with one single query.
>
> I don't like the current taxonomy system. I just want a tree where I can
> attach nodes to and let drupal build the complete navigation structure.
> Another disadvantage of the taxonomy system is also that building real
> breadcrumbs is very costly (due to recursion). Yesterday, I started a
> module (named ouline) that uses a nested tree instead of taxonomy to
> classify content. At the moment it is already capable of building a
> breadcrumb with one single query:
>
> SELECT node.nid as nid, node.title as title
> FROM outline AS selector
> CROSS JOIN outline AS outline
> ON (selector.lft BETWEEN outline.lft AND outline.rgt AND
> selector.tid = outline.tid)
> CROSS JOIN node AS node
> ON (outline.nid = node.nid AND node.status > 0 AND node.moderate
> = 0)
> WHERE selector.nid = <node id> AND outline.nid != selector.nid
> ORDER BY outline.lft
>
> If the outline table would be integrated within the node table, you even
> need to JOIN one table less. Another advantage is that the nested set
> does not mess around with "weight" propertys. There is only one single
> allowed order (that can be changed very easly though, for example using
> drag and drop with AJAX and regular buttons as fallback).
>
> Konstantin Käfer
>
> Karoly Negyesi schrieb:
> > Hi!
> >
> > Probably most of the devels have not noticed
> > http://drupal.org/node/34755 "when I enable all modules in core, the
> > menu array eats over 800K of RAM". As we now have menu-otf which will
> > be badly abused and (almost) all nodes will be put in the menu
> > hierarchy instead of stuff like About Us, FAQ etc, we can look ahead
> > for situations where someone locks himself out of his drupal cold
> > after a node submission because the menu tree will grow too large. I
> > know this can not be solved for 4.7, it's too late, but let's discuss
> > it.
> >
> > Regards
> >
> > NK
Bèr
--
PGP ber at webschuur.com
http://www.webschuur.com/sites/webschuur.com/files/ber_webschuur.asc
PGP berkessels at gmx.net
http://www.webschuur.com/sites/webschuur.com/files/ber_gmx.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://drupal3.drupal.org/pipermail/development/attachments/20051024/4ac33aa3/attachment.pgp
More information about the drupal-devel
mailing list