create table nodes ( node_id integer not null primary key, parent integer references node_id, message varchar(1024), location varchar(256) -- only 256 levels of replies and only 256 replies to a root node ); -- Let's create a discussion -- root level insert into nodes (node_id, message,location) values (1,'Hello',''); -- we count from 'A' to 'Z' in this simplicistic example insert into nodes (node_id, message,location) values (2,'Re: Hello','A'); insert into nodes (node_id, message,location) values (3,'Re: Hello','B'); insert into nodes (node_id, message,location) values (4,'Re: Re: Hello (1)','AA'); insert into nodes (node_id, message,location) values (5,'Re: Re: Hello (2)','AB'); insert into nodes (node_id, message,location) values (6,'Re: Re: Hello!','BA');