in reply to Storing Complex Structures in a database

I used to use a 1:n Relation for this, e.g.:
ID ParentID title text 1 0 bla I would.. 2 1 re:bla I better would ... 3 1 re:bla Don't you.. 4 2 re:re:bla This is an ...
Though each item in your data only needs to know it's parent. This works fine for me with *.csv files. When you use DBI::CSV you will be able to use all files in a specified folder like tables, whereas the folder would be your DB. AND you can perform SELECT on it.
So using the DBI will grant you the ability to upgrade to a real DBMS later.
You'll do yourself a favour if all of your indices start not at zero but at one, because DB indices start usually at 1, so in above example a ParentID of O would always mean, that this entry belongs directly into the tree root, but the tree root is the only element that contains iteself (as long as you use only one *.csv file).
Have a nice day
All decision is left to your taste