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

Làm cách nào để lưu trữ đơn đặt hàng?

Bạn có thể giữ đơn đặt hàng dưới dạng chữ và sử dụng sắp xếp từ vựng:

1. A
2. Z

Thêm một công việc:

1. A
3. L
2. Z

Thêm nữa:

1. A
4. B
3. L
2. Z

Di chuyển 2 từ 1 đến 4:

1. A
2. AL
4. B
3. L

vv

Bạn chỉ cập nhật một bản ghi tại một thời điểm:chỉ cần lấy một chữ cái trung bình giữa các bản ghi đầu tiên khác nhau:nếu bạn đặt giữa AC , bạn lấy B , nếu bạn đặt giữa ALGJALILFG , bạn lấy ALH .

Chữ cái bên cạnh số hiện có là số hiện có được nối với chữ cái bên cạnh Z . I E. nếu bạn cần đặt giữa ABHDFGACSD F, bạn tính nó nằm trong khoảng từ ABHAB(Z+) và viết AB(letter 35/2) , đó là ABP .

Nếu bạn sử dụng hết độ dài chuỗi, bạn luôn có thể thực hiện sắp xếp lại đầy đủ.

Cập nhật:

Bạn cũng có thể giữ dữ liệu của mình dưới dạng danh sách được liên kết.

Xem bài viết trong blog của tôi về cách thực hiện điều đó trong MySQL :

Tóm lại:

/* This just returns all records in no particular order */

SELECT  *
FROM    t_list

id      parent
------- --------
1       0
2       3
3       4
4       1

/* This returns all records in intended order */

SELECT  @r AS _current,
        @r := (
        SELECT  id
        FROM    t_list
        WHERE   parent = _current
        )
FROM    (
        SELECT  @r := 0
        ) vars,
        t_list

_current id
-------  --------
0        1
1        4
4        3
3        2

Khi di chuyển các mục, bạn cần cập nhật tối đa 4 hàng.

Đây dường như là cách hiệu quả nhất để giữ một danh sách có thứ tự được cập nhật thường xuyên.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP / PDO:SQl để tìm hàng chứa giá trị chuỗi

  2. MySQL - Bảng trùng lặp

  3. Datatype / cấu trúc để lưu trữ bù lệch múi giờ trong MySQL

  4. MySQL:Bỏ qua lỗi khi nhập?

  5. Dữ liệu nguồn mở ngày càng phát triển:Chọn MySQL, NoSQL hoặc cả hai