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