किसी भी डेटाबेस में, यदि "पेड़" के प्रत्येक सदस्य में समान गुण होते हैं, तो स्व-संदर्भ तालिका का उपयोग करना सबसे अच्छा है, खासकर यदि प्रत्येक पेड़ में 1 और केवल 1 प्रत्यक्ष माता-पिता हों।
आईई.
HR
------
ID
first_name
last_name
department_id
sal
boss_hr_id (referneces HR.ID)
आमतौर पर बिग बॉस के पास NULL Boss_hr_id होगा
ऐसी संरचना को क्वेरी करने के लिए, पोस्टग्रेज़ में, आप CTEs ("रिकर्सिव" स्टेटमेंट के साथ)
. का उपयोग कर सकते हैंउपरोक्त तालिका के लिए, इस तरह की एक क्वेरी काम करेगी:
with recursive ret(id, first_name, last_name, dept_id,boss_hr_id) as
(
select * from hr
where hr.id=**ID_OF_PERSON_YOU_ARE_QUERYING_STRUCTURE**
union
select hr.id, hr.first_name, hr.last_name,hr.dept_id,hr.boss_hr_id, lev+1 from hr
inner join ret on ret.boss_hr_id=hr.hr_id
)
select * from ret
)