Requête Postgresql pour obtenir une relation parent-enfant de niveau n stockée dans une seule table

J'ai un tableau indiquant les relations parent-enfant. Les relations peuvent aller n-niveau profond.

J'ai créé un exemple de tableau à l'aide de la requête suivante:

CREATE SEQUENCE relations_rel_id_seq
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;
CREATE TABLE relations(
    rel_id bigint DEFAULT nextval('relations_rel_id_seq'::regclass) NOT NULL PRIMARY KEY,
    rel_name text,
    rel_display text,
    rel_parent bigint
);

SQLFiddle

J'ai besoin d'interroger la table et afficher les relations parent-enfant de façon hiérarchique. Je ne suis pas encore avoir une idée quant à la façon de la requête n-niveau profond à l'aide de requêtes sql.

Pour la sqlfiddle par exemple, l'espérance de la hiérarchie de sortie:

rel1
    rel11
        rel111
        rel112
            rel1121
rel2
    rel21
        rel211
        rel212

N. B: La valeur de n, dans n-level est inconnue.

DB Design:

Est-il une meilleure manière d'une telle relation peut être exprimée dans le
base de données pour faciliter l'interrogation.?

source d'informationauteur saji89