PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách lưu trữ và truy vấn cơ sở dữ liệu với cấu trúc cây

Trong bất kỳ cơ sở dữ liệu nào, nếu mỗi thành viên của "cây" có các thuộc tính giống nhau, tốt nhất bạn nên sử dụng bảng tự tham chiếu, đặc biệt nếu mỗi cây có 1 và chỉ 1 gốc trực tiếp.

IE.

HR
------
ID
first_name
last_name
department_id
sal
boss_hr_id (referneces HR.ID)

Thông thường, sếp lớn sẽ có NULL boss_hr_id

Để truy vấn cấu trúc như vậy, trong postgres, bạn có thể sử dụng CTE (câu lệnh "với đệ quy")

Đối với bảng trên, một truy vấn như thế này sẽ hoạt động:

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
) 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql gem install pg 0.18.4 vượt qua, cài đặt gói không thành công

  2. Lỗi khi cố gắng kết nối R với PostgreSQL bằng RODBC

  3. Thứ tự sắp xếp xác định cho các hàm cửa sổ

  4. Xây dựng cơ sở dữ liệu khả dụng cao cho Moodle bằng PostgreSQL

  5. [Video] Ansible và PostgreSQL