Nasıl komşuluk liste yöntemini kullanarak hierachically saklanan SQL veri çok boyutlu bir dizi oluşturabilirim?

2 Cevap php

Hierachical Data from SQL

Adjacency List Model

Benim modelde Ben nesneleri, kendi üst kimliği ile saklanan her bir dizi var. Benim hiyerarşi yöntemi olarak komşuluk liste modelini kullanıyorum.

Orada ve daha sonra komşuluk listesindeki tüm örnekleri basitçe çıktı. Hiçbiri sonuç kümesinden çok boyutlu bir dizi oluşturmak için deneyin.

---------------
| id | parent |
---------------
| 1  | NULL   |
| 2  | 1      |
| 3  | 1      |
| 4  | 2      |
| 5  | 2      |
| 6  | 5      |
---------------

Object

Ben 'çocuk' olarak adlandırılan benim sınıfta bir dizi değişken oluşturulur ve bir çocuk ben db sorgudan bir çocuk bulmak her zaman itiraz eklemek istiyorum.

Her nesnenin içinde bir dizi oluşturma ve orada sonraki nesneleri saklamak yanlış geliyor. Ben ayrı ayrı nesneler dizisi oluşturmak değil mi? Bunu bu şekilde yapıyor ben görünümüne içine almak zaman zor diziyi hareket yapabilir.

Ben bu sorunu yanlış bir şekilde yaklaşıyor gibi hissediyorum?

Bu daha PHP diziler kullanmak için daha akıllı bir yolu var mı?

Teşekkürler!

2 Cevap

Çocukların dizisi bir sınıfın bir parçası olmak zorunda değildir; her zaman sadece tek bir düğüm bir nesneyi ve çocuklarını içeren bir karma bir ad-hoc ağaç yapabilirsiniz. Ben PHP bilmiyorum, ama böyle bir şey olmazdı:

{
    object => $row1,
    children => [
        {
            object => $row2,
            children => [ ... ],
        }, {
            object => $row3,
            children => [],
        }
    ]
}

Eğer bir dizi olması gerekir mi? Bir seçenek nesneleri, bu gibi bir özyinelemeli hiyerarşik bir yapı uygulamak sahip olabilir:

http://www.php.net/~helly/php/ext/spl/classRecursiveArrayIterator.html

Sen çocuk gibi nesneler ekleyebilir ve yine bir dizi gibi moda yapısını seyahat edebilirsiniz.

SPL belgeler azdır ama bazı iyi çaprazlanabiliyorsa yapıları, arabirimleri ve sınıfları sağlar. Bazı iyi eğitimler bu konuda web üzerinde mevcut.