Slashdot veya Youtube yorumlarına gibi - - Ben bir PHP / MySQL uygulama için bir dişli mesaj ekran tasarlama ve, diyelim ki, bir sayfada 20 yorum var böylece ben yorum sipariş ve sayfalar ayrılarak hakkında gitmek nasıl merak ediyorum ama yine de onları iç içe var.
Benim app Yorumlar sınırsız düzeyde iç içe olabilir, ve bu yapı ben bir komşuluk ilişkisi tablo, herhangi Artarak / soy ilişkisi olan her bir çifti için bir satır içeren ayrı bir tablo olduğunu düşündüğümüz kullanılarak temsil edilir. Bu ilişki tablo böylece 2 seviye "büyük-büyükbaba" anlamına childID, PARENTID ve LEVEL vardır, ve.
Sorum son kullanıcı için, ve verimli bir DB sorgusu inşa pratiklik hem de kullanılabilirlik biridir. Ben bu seçenekleri kabul:
Onların ebeveynleri ile görünmüyor bile, belirli bir tarih aralığındaki tüm yorumlar birlikte görünecek şekilde Yarma, ne olursa olsun ağaç pozisyon, tarih sayfaları içine sonuçları. Onun ailesine benzer bir anda yayınlanmıştır herhangi bir açıklama aynı sayfada görünecektir ve bu durumda biz onları 'iç içe' görüntüleyebilir, ancak ebeveynlerinden yetim yorumlar olacaktır. Bu muhtemelen kabul edilebilir - bu işler YouTube açıklamalarda yapılır yoludur - çok daha sonra daha üst yapılmış bir yorum (üst son sayfasında değilse) kendi ebeveyn olarak aynı sayfada görünür, ama onun yerine birlikte görünmez Diğer yeni yorumlar.
Senin gibi sırayla düğümleri alınıyor bir ağaç travers olacaktır. Kardeşler yine tarihe göre sıralanır olabilir ama bu, ağaç yapısından ziyade tarihe öncelik verir. Bunun yararı ebeveyn En son yorumlarından sayfaları bir dizi olsa bile yanıtları her zaman ebeveynlerinin (onlar cevapta olan açıklama) ile yerleştirilen olmasıdır. Bu işler böyle icanhascheezburger blog gibi uygulamalar yapılır nasıl. Herkesin büyük ağaç dalı ne olursa olsun bir cevap eklemek için cazip olduğu yolu gibi bu konuda birkaç şey, sevmiyorum.
Üçüncü seçenek sayfaları içine yorum değil ayrı yerde Slashdot, yaptığı gibi yapmaktır, ama bir büyük ağaç var - bunun yerine düşük değerlendirme yorumlarınıza itlaf başlar yönetilebilir sayfa boyutunu tutmak için.
Ben ilk benim ilişki tablosu verilen basit DB sorgusu olacağını düşünüyorum ama başka fikirlere açık olacaktır.
Bazı tür sistemler, üç türlü, bir şekilde yuvalama seviyesini sınırlamak - biz onlar kardeşler sanki her şeyin birlikte kombine edilebilir X seviyeleri üzerinde recursed kez bu, yapmak için yeterince kolaydır. Örneğin, YouTube yorumlar sadece bir seviyeye kılıyor. Diğer sistemler bazen 5 ya da öylesine sonra "yuvalama seviyesi aşıldı" demek.