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

cấu trúc cây tốt nhất php / Mysql

Bạn có thể sử dụng Mô hình tập hợp lồng nhau vì nó mang lại các truy vấn rất hiệu quả. Xem Quản lý dữ liệu phân cấp trong MySQL và đọc phần có tên Mô hình tập hợp lồng nhau .

Nếu bạn đang sử dụng ORM như Doctrine, thì nó bao gồm các khả năng được thiết lập lồng nhau .

Một số người có thể khó nắm được các khái niệm tập hợp lồng nhau của left đúng. Tôi nhận thấy rằng việc sử dụng những con số đó như một phép tương tự cho số dòng của thẻ mở / đóng trong tài liệu XML, mọi người sẽ thấy dễ dàng hơn để nắm bắt.

Ví dụ:lấy ví dụ dữ liệu từ liên kết MySQL ở trên:

+-------------+----------------------+-----+-----+
| category_id | name                 | lft | rgt |
+-------------+----------------------+-----+-----+
|           1 | ELECTRONICS          |   1 |  20 |
|           2 | TELEVISIONS          |   2 |   9 |
|           3 | TUBE                 |   3 |   4 |
|           4 | LCD                  |   5 |   6 |
|           5 | PLASMA               |   7 |   8 |
|           6 | PORTABLE ELECTRONICS |  10 |  19 |
|           7 | MP3 PLAYERS          |  11 |  14 |
|           8 | FLASH                |  12 |  13 |
|           9 | CD PLAYERS           |  15 |  16 |
|          10 | 2 WAY RADIOS         |  17 |  18 |
+-------------+----------------------+-----+-----+

Nếu bạn đi theo lft , rgt và sử dụng chúng làm số dòng cho một tài liệu XML, bạn sẽ nhận được:

1. <electronics>
2.    <televisions>
3.        <tube>
4.        </tube>
5.        <lcd>
6.        </lcd>
7.        <plasma>  
8.        </plasma> 
9.     </televisions>
10.    <portable electronics>
11.        <mp3 players>
12.            <flash>
13.            </flash>
14.        </mp3 players>
15.        <cd players>
16.        </cd players>
17.        <2 way radios>
18.        </2 way radios>
19.    </portable electronics>
20. </electronics>

Nhìn thấy nó theo cách này có thể giúp một số người dễ dàng hình dung cấu trúc phân cấp tập hợp lồng nhau kết quả. Nó cũng làm rõ hơn lý do tại sao phương pháp này cải thiện hiệu quả vì nó giúp bạn có thể chọn toàn bộ các nút mà không cần nhiều truy vấn hoặc liên kết.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. lỗi mysql node.js:ECONNREFUSED

  2. Lỗi khi tải Mô-đun MySQLdb 'Bạn đã cài đặt mysqlclient hay MySQL-python?'

  3. Chạy tập lệnh .sql bằng MySQL với JDBC

  4. Tôi có thể thực thi nhiều truy vấn được phân tách bằng dấu chấm phẩy với MySQL Connector / J không?

  5. Quản lý tài khoản người dùng, vai trò, quyền, xác thực PHP và MySQL - Phần 6