У меня есть таблица, обозначающая отношения родитель-потомок. Соотношения могут идти n-уровне глубоко.
Я создал образец таблицы, используя следующий запрос:
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
);
Мне нужно запросить таблицу и показать иерархические отношения родитель-ребенок. Я до сих пор не понимаю, как запросить n-уровневый уровень, используя sql-запрос.
Для sqlfiddle, например, ожидаемая иерархия вывода:
rel1
rel11
rel111
rel112
rel1121
rel2
rel21
rel211
rel212
N.B: Значение n, в n-level
неизвестно.
Конструкция БД:
Есть ли лучший способ, чтобы такое отношение могло быть выражено в базы данных для простого запроса.?