Forum

Sınırsız kategori m...
 
Bildirimler
Hepsini Temizle

Sınırsız kategori mantığımı yoksa ayrı tablo yapısı mı

4 Yazılar
2 Üyeler
0 Reactions
1,368 Görüntüleme
(@ArdaKeskiner)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

Bir konuda bilginize başvurmak istiyorum.
Msql 2008 ve .aspx üzerinde admin paneli kendimce bir proje geliştiriyorum.
Bu projede bulunan ana kategoriler var ve bunlara ait olan alt kategoriler var buraya kadar herşey normal gitti fakat bura arada bir boşluğa düştüm. Sayfa yapısında repeater kullanıyorum.
ana kategori altında bulunan alt ana kategoriler var örnek olarak;
html --> ana kategori -- (ana sayfa sol taraf menü) .aspx?ktgId0=1 ile querystring ile html index sayfasına gidiyor --->
html index sayfasında ise (ana ktg index sayfası tek)
html Başlangıç ---> başlık 1 (alt ana kategori)
1-html nedir --> alt ana kategori altında bulunan sayfa ya erişim sağlanacak
2-html editörleri --> alt ana kategori altında bulunan sayfa ya erişim sağlanacak
.......
html hata kodları --> başlık 2 (alt ana kategori)
1-300 hata kodu --> alt ana kategori altında bulunan sayfa ya erişim sağlanacak
2-100 hata kodu --> alt ana kategori altında bulunan sayfa ya erişim sağlanacak

html referansları --> başlık 3 (alt ana kategori)
1- <a> -->alt ana kategori altında bulunan sayfa ya erişim sağlanacak
2- <div> -->alt ana kategori altında bulunan sayfa ya erişim sağlanacak

html sık sorulan sorular --> başlık 4 (alt ana kategori)
1-Html nerede kullanılır -->alt ana kategori altında bulunan sayfa ya erişim sağlanacak
2-html css dosyasını görmüyor -->alt ana kategori altında bulunan sayfa ya erişim sağlanacak

Yukarıdaki yapı üzerinden css ve asp.net gibi bulunan 7 kategori daha bulunmaktadır.
css başlangıç -- css özellikleri -- css sık sorulan sorular gibi

artı bazı konu başlıklarında alt ana kategori olarak 4 farklı konu ktg yapısını ekte bulunan excel üzerinden inceleye bilirsiniz

bu konuda ki boşluk yaşama sebebim sınırsız kategori mantığı yani tek tablo üzerinden mi işlem yapmam veya
her alt ana kategori için bir tablo oluşturup onun üzerinden mi işlem yapmam

benim kurduğum yapı ;
Database --> Tablo --> kategori: html -- css -- asp.net (ktgId -- ktgad)
Database --> Tablo --> sık sorulan sorular (ktgId -- sksrlId- sayfa ad)

gibi bir yapı kurdum burda mantık doğru mu ?

Biraz uzun oldu kusura bakmayın .

 
Gönderildi : 24/07/2015 14:54

(@eravse)
Gönderiler: 1753
Üye
 

Merhaba doğru yada yanlış demek çok doğru olmaz bence size kolay gelen performanslı çalışan her yöntem sizin için doğrudur bence.

Fakat genelde sınırsız kategori mantıklarında ( en azından ben bu şekilde yapıyorum ) işime gelen yöntem tek tablo üzerinden yürümek.

Mesela

 

Tablo Menu

ID - Sub Id - Menu Adı

1 - 0 - Html CSS

2 - 1 - CSS Teknikleri

3 - 1 - Basit Html teknikleri vb.

 

şekilde yaparak önce Sub Id 0 olanları ana kategorı varsayarak ekrana bastyırıp daha sonra onun ıd sıne baglı kayıtları cekerek altına basabılırız bunun ıcın bır class yaparak tek seferde bınd da edebılırsınız 

 

saygılar

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 26/07/2015 03:01

(@ArdaKeskiner)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

Zaman ayırdığınız için teşekkürler;

Sınırsız kategori düzenlemesi yapıldığı zaman admin panel üzerinde sayfa kategori işlemleri için split veya benzeri bir class kullanmak gerekiyor.

 sayfa Id : 1   ----  ktgId 1.1.2 gibi bir yapı olduğu zaman sayfa geldiği zaman ktgId sutunu sayfa kategori güncellemesi için ilgili sembol ile ayrılıp tekrardan sql sorguya verilmesi ve tekrardan gelmesi gibi bir durum oluyor burada 1.1.2 kategorisini dropdown'a basmak için çalışma zamanında (runtime) dropdown oluşturmak gerekiyor kategori >> alt kategori sayısı belli değil ayrıca bir array list ve döngü gerekiyor.Burda performans kaybı olur mu? 10 kategori için bir sıkıntı olmaz ama 100 veya üstü bir kategori yapısında sistemde şişme olur mu?

Olur ise cache yapısını kurmam gerekecek mi ?

 
Gönderildi : 28/07/2015 13:16

(@eravse)
Gönderiler: 1753
Üye
 

Yani eskiden olsa classic ASP döneminden bahsediyorum globalde application cache al diyebilirdim ama şu anda sunucular ve sistemler gayet güçlü ve sorun olacağını zannetmiyorum. 

 

Senin soruınun çözümü ise recursive method yazman MVC kısmında

@helper ShowTree(IEnumerable<Foo> foos)
{
    <ul>
        @foreach (var foo in foos)
        {
            <li>
                @foo.Title
                @if (foo.Children.Any())
                {
                    @ShowTree(foo.Children)
                }
            </li>
        }
    </ul> 

}

şu şekilde kullanabilirsin bir helper yazarak

 

Recursive method olarak da araştırabilirsin.

Saygılar

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 29/07/2015 02:00

Paylaş: