Thanks all! It will take me a while to learn the materials in your posts.
One thing I care most is DYNAMICS of a tree. I am not sure it is covered in
the mentioned references before I study them. Thanks all again!


On Wed, Oct 14, 2009 at 9:18 AM, O'Neill, Owen <oone...@averyberkel.com>wrote:

>
> Personally I'd put the nodes and vertices/paths/edge  between them in
> separate tables. (unless you're happy with the 1 vertex between nodes
> constraint)
>
> It does really get horrible if you're planning to use SQL to find
> relations with a distance apart of > 1 vertex.
>
> I have an oh so vague recollection (not specific to sqlite) of someone
> using a huge number of boolean columns and some incredible monster of a
> 'case' statement to push tree parsing off the client app and back onto
> the database server. The details completely escape me now and it
> probably introduced lots of constraints on tree depth or number of nodes
> / vertices.....oh for a perfect memory eh.
>
> People a lot cleverer than me have done a pile of work on this.
> http://blog.monstuff.com/archives/000026.html
> http://www.sqlteam.com/article/more-trees-hierarchies-in-sql
> ..ooops, I appear to have stayed off topic. Apologies.
>
>
> -----Original Message-----
> From: sqlite-users-boun...@sqlite.org
> [mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Hoover, Jeffrey
> Sent: Wednesday, October 14, 2009 2:51 PM
> To: General Discussion of SQLite Database
> Subject: Re: [sqlite] how to represent a tree in SQL
>
> Isn't most of the complexity in the software?
>
> Representing a tree is fairly simple, it just requires a foreign key in
> the table referencing the primary key of the same table...
>
> Create table tree_node (
>        node_id integer primary key,
>        distance_from_root integer not null,    -- 0 implies root node
>        parent_node integer,                            -- FK to
> node_id, column should be index
>        ...data columns...
> );
>
> Create view tree as
>   Select * from tree_node where distance_from_root=0;
>
> All kinds of denormalizations and elaborations possible from here...
>
> -----Original Message-----
> From: sqlite-users-boun...@sqlite.org
> [mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Michael Chen
> Sent: Wednesday, October 14, 2009 9:41 AM
> To: sqlite-users@sqlite.org
> Subject: [sqlite] how to represent a tree in SQL
>
> Dear there,
>
> I am developing a numerical application, where a single rooted dynamic
> tree
> is the main data structure. I intended to use SQLite for this purpose
> and
> also for other data as well. However I have no reference how to
> represent a
> tree using tables. I need these functionalities:
> (1) basic tree: single root, multi-levels, arbitrary number of branches,
> index each node, index each path (from root to a leaf), lookup parent,
> lookup descendants
> (2) dynamics: delete a path, add a path; maintain parent and descendants
> table; maintain history of tree; lookup history
> (3) each node has lots of  matrix and vectors, which will be updated
> with
> dynamics, and should be tracked
>
> As you see, it is nontrivial to write a tree structure to support all
> these
> functions, while keep the code clean and neat. That's why I want to use
> SQLite to keep things straight. Is there a good reference on this?
>
> Michael Chen
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>



-- 
Best regards,
Michael Chen
Google Voice Phone.: 847-448-0647
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to