ignore your current table structure could you not have a giant table where all of the data goes. for example
GLOBAL_ID 0 // ID in the database
CAT_ID 4565 // Action
PARENT_CAT_ID 0022 // Games
PROJECT_ID 0004
CAT_NAME bob // not sure why you want this
DOC 20042005 // Date DDMMYYYY psuedo timestamp
IS_ACTIVE yes
CREATED_BY bill clinton
LEVEL "1"
now do a super expandable code for the level
echo "<img src=".$itemlevel.".gif>";
this means that for each level you would have a gif file to input before the text creating a psuedo tree view effect