Web uygulaması için - Çoklu sayfalar üzerinde iç içe geçmiş tartışmaları ayırmak için en iyi yöntemi nedir?

1 Cevap php

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.

1 Cevap

Ben kullanıcıların bir anda ilgi bir tek iplik aracılığıyla okumak istiyorum eğilimindedir çünkü hiç iç içe yorumlarınızı istiyorum nedeni olduğunu varsayalım. Yani, kullanıcıların düşünce tutarlı zincirlerinin konuları yaratacak inanmak için nedenlerimiz var, ve / veya hangi bir iş parçacığı olarak ele alır Bazı kullanıcıların değil, diğerleri ilgi olacaktır.

Bu durumda eğer hiç keyfi tarih (Seçenek 1) sayfalar arasında bir iplik bölmek istediğiniz neden, bilmiyorum. Düşük puanlı yorumlar (Seçenek 3) itlafı ile bir tek sayfa kullanarak biraz sert görünüyor ve yorumlarınızı yayınlamaktan kullanıcıları vazgeçirmek olabilir. Eğer SlashDot gibi bir seyirci kitlesi var eğer iyi bir şey olabilir, ama daha tipik ziyareti oranları ile siteler için istenmeyen olabilir.

Belki hepsi aynı sayfada parçacığı ile, 2. Seçenek gibi bir şey olabilir, ama bir iplik çok uzun oluyor başlarsa, bu konuya adanmış bir sayfaya kullanıcı alır tek link haline sıvamış alır. Alternatif olarak, uzun konuları sadece kendi konu satırları ve yazarlar, her görüntülemek için azaltılabilir hangi iş parçacığı için özel bir sayfa uygun yere dönüş bağlantı.

Kullanıcıların büyük iplik ilgisiz Yorum göndermek için eğilimi kullanıcıların ipliğin ucunu bulmak, ya da daha uygun olan bir konu bulmak için etrafında kaydırma ile rahatsız edilmek istemeyen bir ürün olduğunu sanıyorum. Otomatik olarak yönetilebilir uzunlukta tek bir sayfada görüntülenen tüm ipliklerinin kök bırakarak, uzun konuları sıkıştırılması ile, kullanıcıların kolayca ilgi bir iş parçacığı için tarayabilir ve istenirse buna ekleyin.