storing tree-like structures in tablesby schweini (Friar)
|on Sep 11, 2002 at 02:09 UTC||Need Help??|
schweini has asked for the wisdom of the Perl Monks concerning the following question:
Fellow monks, i'm seeking enlightment regarding the following:
i have items ("leaves") that can belong to one or more groups ("branches"), and every group can be in 0 or more groups.
my question is, how can i store this kind of data in a (mysql) table? what i'm doing right now, is simply using a "relationships" table, where every row either has a "TOP" or the corresponding row-id in its "son_of" column.
this is of course not quite optimal, if i have to re-contruct the whole branch leading to a given row, since i'd have to do e.g. 5 SELECTS for the re-construction of the branch of a leaf that has a depth of 5 (according to my very limited SQL-skills).
i could maybe store serialized objects or xml in my database, but really rather wouldn't because i need speed and portability.