Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Rekursif termasuk Sequelize?

Ada beberapa solusi jika ditemukan untuk yang pertama ini lebih rumit tetapi akan memberikan kinerja yang lebih baik:

Yang ini tentang menerapkan struktur data hierarkis di MySQLI seperti panduan di sini

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

Yang bernama The Nested Set Model.

Solusi kedua yang sebenarnya saya terapkan sendiri adalah perluasan rekursif, yang ini menggunakan banyak permintaan mysql dan saya yakin dapat ditingkatkan, tetapi ini cepat dan berfungsi dengan baik. Soalnya pakai fungsi tiap kategori seperti ini

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);
            }
        });
    });
};

Jadi itu melalui kategori dan mengembangkannya secara rekursif.

Mungkin ini akan membantu seseorang juga.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbandingan tanggal MySQL

  2. Apa urutan baris MySQL untuk SELECT * FROM table_name;?

  3. Mengapa baris cocok tetapi tidak diubah dengan pernyataan pembaruan mysql?

  4. tabel magento sales_flat_order bidang protect_code penjelasan

  5. MySQL Hapus baris duplikat yang memiliki nilai kolom yang sama