我有一个表表示父子关系。关系可以深入到 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
);
我需要查询表并分层显示父子关系。我仍然不知道如何使用 sql 查询来查询 n 级深度。
对于 sqlfiddle,例如,预期的输出层次结构:
rel1
rel11
rel111
rel112
rel1121
rel2
rel21
rel211
rel212
注意:值 n, inn-level
是未知的。
数据库设计:
有没有更好的方法可以在数据库中表达这种关系以便于查询。?