Benim web olası kategorilerini tanımlayan bir tablo var - alanlar bu gibi görünmelidir:
- id - name - parentID
Bilgiler böyle bir şey saklanır:
+-----+------+----------+ | id | name | parentID | +-----+------+----------+ | 1 | pets | 0 | +-----+------+----------+ | 2 | cats | 1 | +-----+------+----------+ | 3 | dogs | 1 | +-----+------+----------+
A parentID
0 kategori / sayfa ev seviyede olduğunu gösterir. Ben hızlı ve kolay ana kategorileri oluşturmak için bir yol arıyorum.
Akla gelen ilk yöntem, SQL sorguları bir dizi oldu, ama hızla bu sinsice sitesi var daha karmaşık kaynak yoğun olacağını fark etti.
Mysql kılavuzu aracılığıyla okuma, ancak ben burada uygulamaya bu koymak istiyorum nasıl emin değilim, mysql döngüler ve koşullu ifadeler kullanabilirsiniz gördüm.
İdeal olarak, tüm doğrudan ilgili ana unsurları çeker tek bir sorgu var istiyorum.
Ben Evcil kategorisinde bakıyordu Eğer üst seviyede, çünkü ben sadece home
görecekti. En kısa zamanda ben detaya olarak (cats
içine, ya dogs
veya pets
altında sayfa) sonra çubuğunda pets
görmelisiniz - Aynı sonraki çocuk kategoriler ve sayfalar için de geçerli.
Bu tarzda depolanan bilgileri kullanarak kategorilerin bir listesini oluşturmak için en etkili yolu nedir? Bu soru daha fazla açıklama gerektiriyorsa, sormak, ve ben daha fazla bilgi sağlamak için elimden geleni yapacağım lütfen.
Clarification: Bu CMS parçasıdır - ve gibi, kullanıcıların anında kategorilerde değişiklik yapmak için yetenek ihtiyacımız olacak. Ben (örneğin iç içe setleri gibi) çeşitli veri depolama düzenleri baktım ve onlar navigasyon değişiklik yapmak için basit bir formu iyi kendilerini borç görünmüyor.
Bu nedenle, her hangi bir yöntem kolayca a) bir kullanıcı tarafından anlaşılabilir ve b) bir kullanıcı için kolay uygulanabilir olması gerekir.
Kategoriler iyi bir PC'de klasörleri yerine etiketleri olarak tarif edilmektedir. Eğer herhangi bir kategoriyi görüntülerken, bu kategorideki hemen çocuklar, hem de hemen alt sayfaları görebilirsiniz.
Eğer bir kategori veya bir sayfasını görüntülediğinizde, ana kategoriler (ama kendisi görülebilir).
Örnek: Ben var German Shepard ki dogs ki pets altında altında bulunan
When viewing *pets*: Home When viewing *dogs*: Home -> Pets When viewing *German Shepard*: Home -> Pets -> Dogs