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

Phân loại cây với một đường dẫn cụ thể?

Tôi tin rằng con đường hiện thực hóa của bạn là không đúng.

Bạn nhận được logic nào để sắp xếp những thứ như thế này

1
1.2
1
1.5

Tại sao cái thứ hai không cùng với cái thứ nhất?

Nếu bạn có

1
1.2
2
2.5

Điều này sẽ là tầm thường.

CHỈNH SỬA:Tôi đã xem ví dụ của bạn và bạn không lưu trữ đường dẫn cụ thể hóa của một hàng, nhưng bạn đang lưu trữ một đường dẫn cụ thể hóa của hàng mẹ. Đây là cách đường dẫn cụ thể hóa của hàng thực sự trông như thế nào. Sắp xếp trực tiếp trên matpath sẽ hoạt động nếu bạn không có nhiều hơn 9 nhánh nếu bạn lưu trữ nó dưới dạng:

 id | parent_id | matpath   |          created
----+-----------+-----------+----------------------------
  2 |         1 | 1.2       | 2010-05-08 15:18:37.987544
  6 |         2 | 1.2.6     | 2010-05-08 17:50:43.288759
  8 |         6 | 1.2.6.8   | 2010-05-09 14:01:17.632695
  3 |         1 | 1.3       | 2010-05-08 17:38:14.125377
  4 |         1 | 1.4       | 2010-05-08 17:38:57.26743
  5 |         1 | 1.5       | 2010-05-08 17:43:28.211708
  9 |         5 | 1.5.9     | 2010-05-09 14:02:43.818646
  7 |         1 | 1.7       | 2010-05-08 18:18:11.849735

nếu không (> 9) bạn sẽ phải chuyển matpath thành một cái gì đó giống như

001.002.006
001.002.006.008

sẽ hỗ trợ lên đến 999 chi nhánh.

Xin lưu ý

  • ngay cả cách tiếp cận với 4 chữ số cố định, chẳng hạn như 0001.0002.0006 sẽ cung cấp cho bạn một trường ngắn hơn trong câu trả lời được chấp nhận
  • bạn có thể phân tích cú pháp matpath một giá trị sắp xếp sản phẩm một cách nhanh chóng bằng một hàm người dùng
  • bạn có thể lưu trữ trực tiếp matpath ở định dạng này (nó cũng có một số thuộc tính tốt khác)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách không tạo tiện ích mở rộng PostgreSQL 9.0 trên nền tảng RPM

  2. Sử dụng pyspark để kết nối với PostgreSQL

  3. Cách khử trùng SQL thô trong Rails 4

  4. Truy vấn đệ quy Postgres với row_to_json

  5. Biểu thức chính quy trong mệnh đề LIKE của PostgreSQL