records for the messages in the thread headed by message 104 referring to table 1 the key u201c 1xxx u201d matches the tags for records corresponding to messages 106 and 108 process 300 then retrieves messages 106 and 108 step 312 and displays messages 106 and 108 to the user step 314 process 300 can also be used to delete a message when a message is deleted so are all of its children process 300 selects a message and all of its children the records corresponding to the selected messages are then deleted fig4 is a flowchart of a process 400 for adding a message to an indented threaded discussion according to one implementation process 400 receives a command from a user step 402 the command identifies message 114 and requests replying to message 114 process 400 modifies the tag of message 114 to produce a key to do this process 400 first selects the digit corresponding to the hierarchical depth immediately below the hierarchical depth of message 114 step 404 referring to table 1 message 114 has a depth of two therefore process 400 selects the third most significant digit of the tag of message 104 process 400 then increments the value of selected digit step 406 the resulting key is u201c 3110 u201d process 400 then indexes the database only once by adding a record to the database having the key as its tag step 408 the record corresponds to the new message the invention can be implemented in digital electronic circuitry or in computer hardware firmware software or in combinations of them apparatus of the.