Hi Igor,

As Misa points out, my original design used 2 tables - category &
line-items.  Either way it's two tables.    The biggest difference lies in
the approach to summing line-items by various levels of category - with
each branch of the tree having different levels.

I cannot speak to performance, but understanding CTEs has been difficult
for me.  Ltree is so much simpler.  I am certain there is a place for CTEs,
but why torture myself trying to hash out a CTE when ltree makes the
queries so much easier to write?

On Feb 26, 2013 11:14 AM, "Misa Simic" <misa.si...@gmail.com> wrote:
>
> Hi Igor,
>
> I agree it is all "in the eyes of beholder".
>
> Would be good if you can show how to achieve the goal (Summing on Top
Levels categories in hierarchy) with CTE?
>
> For example show all categories in level 2 (x), and sum amounts for
each... (Sum takes all amounts from all transactions of its child
categories in any bellow levels).
>
> I have tested both scenarios - and indexed ltree has given better result
- though there is a possibility I haven't pick best approach to solve the
problem with CTE...
>
> I am just interested in performance - implementation detail is less
important...
>
> Data:
>
> Total number of categories: 1000 (in all levels)
> No of Categories in top level: 5
> No of categories in level 2: 20
> Total number of levels: can vary - max in my testing was 8...
>
>
> Transaction rows with amounts: 1 000 000
>
>
> (though I am not sure what u meant by: "2-table design using ltree", and
with CTE there are 2 tables... Categories and Transactions: just in
categories instead of ltree datatype, is integer datatype: parent_id)
>
> Many thanks,
>
> Misa
>
>
> 2013/2/26 Igor Neyman <iney...@perceptron.com>
>>
>>
>>
>> From: Don Parris [mailto:parri...@gmail.com]
>> Sent: Sunday, February 24, 2013 5:21 PM
>> To: pgsql-sql@postgresql.org
>> Subject: Using Ltree For Hierarchical Structures
>>
>> Hi all,
>> With many thanks to Misa and others who helped out with my question
about working with hierarchical data, I have now written a blog post on how
I implemented the ltree module to solve my problem.
>>
>> http://dcparris.net/2013/02/24/using-ltree-hierarchical-postgresql/
>> Frankly, if you work with hierarchical data, I'm not sure I could
recommend it strongly enough.  I should think that even experienced,
advanced SQL gurus would appreciate the simplicity ltree offers, when
compared to the ugly table designs and recursive queries in order to work
with hierarchical structures.
>> I really hope this blog post will help others in the same boat.
>>
>>
>> Regards,
>> Don
>>
>>
>> It's all "in the eyes of beholder".
>> IMHO, recursive CTEs are perfect for hierarchical structures, and much
cleaner than 2-table design using ltree, that you show in the blog.
>>
>> Regards,
>> Igor Neyman
>>
>>
>>
>>
>> --
>> Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
>> To make changes to your subscription:
>> http://www.postgresql.org/mailpref/pgsql-sql
>
>

Reply via email to