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

Đệ quy bao gồm Sequelize?

Có một số giải pháp nếu được tìm thấy cho giải pháp đầu tiên này phức tạp hơn nhưng sẽ cho hiệu suất tốt hơn:

Đây là phần về triển khai cấu trúc dữ liệu phân cấp trong MySQLI như hướng dẫn ở đây

http://mikehillyer.com/articles/managing-hierarchical-data- trong mysql /

Mô hình được đặt tên là Mô hình tập hợp lồng nhau.

Giải pháp thứ hai mà tôi thực sự tự thực hiện là mở rộng đệ quy, giải pháp này sử dụng rất nhiều yêu cầu mysql và tôi tin rằng có thể được cải thiện, nhưng nó là một giải pháp nhanh và hoạt động tốt. Vấn đề là sử dụng cho từng chức năng danh mục như thế này

var expandSubcategories = function (category) {
    return new promise(function (resolve, reject) {
        category.getSubcategories().then(function (subcategories) {
            //if has subcategories expand recursively inner subcategories
            if (subcategories && subcategories.length > 0) {
                var expandPromises = [];
                _.each(subcategories, function (subcategory) {
                    expandPromises.push(expandSubcategories(subcategory));
                });

                promise.all(expandPromises).then(function (expandedCategories) {
                    category.subcategories = [];

                    _.each(expandedCategories, function (expandedCategory) {
                        category.subcategories.push(expandedCategory);
                    }, this);


                    //return self with expanded inner
                    resolve(category);
                });

            } else {
                //if has no subcategories return self
                resolve(category);
            }
        });
    });
};

Vì vậy, nó sẽ đi qua các danh mục và mở rộng chúng một cách đệ quy.

Có thể điều này cũng sẽ giúp ích cho ai đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không có ngoại lệ 'PDOException' với thông báo 'SQLSTATE [HY093]:Số tham số không hợp lệ'

  2. Chèn giá trị NOW () vào kiểu dữ liệu datetime sẽ trả về 0000-00-00 00:00:00

  3. Cách kiểm tra đặc quyền của người dùng trong MySQL Workbench bằng GUI

  4. Mysql không thể kết nối - Quyền truy cập bị từ chối (sử dụng mật khẩu có)

  5. Truyền mảng PHP qua jQuery Ajax