Forum
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 .
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
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 ?
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