2009-08-27 3 views
0

Я ищу письменную платформу электронной коммерции только для практической работы и моего небольшого проекта. Я нахожусь на том этапе, когда я хочу начать писать URL-адрес URL и URL-адрес friednly.Создайте нужный URL-адрес - должен ли я переключаться?

Моя проблема заключается в том, что я написал систему, чтобы иметь неограниченные категории/подкатегории и сделать мою навигацию причиной некоторых проблем.

мой идеал URL будет:

http://mydomain.com/products/first-category/second-category/productname.aspx

и для того, чтобы достичь этого я имею в виду зацикливание обратно в базу данных, где ParentId =. но я считаю, что это не будет лучшей практикой, и делать это для каждой категории и подкатегории, а продукт для каждой страницы кажется неправильным.

Может ли кто-нибудь помочь, как достичь этого?

У меня есть знания об использовании www.urlrewriting.net и написании веб-сайта в asp.net 3.5, но его технический ответ цикла позволяет получить имена и т. Д. Мне нужна помощь.

Если вам требуется больше информации, я с удовольствием отвечу на любые вопросы и надеюсь, что кто-то может помочь мне в этом.

Благодаря

ответ

0

Просто кэшировать всю таблицу категорий памяти, если вы беспокоитесь о возвращении в базу данных.

struct Category 
{ 
    UInt32 CategoryId {get;set;} 
    UInt32 ParentId {get;set;} 
    string Name {get; set;} 
    string Url {get; set;} 
} 

SELECT CategoryId, ParentId, Name, Url FROM Categories Order By CategoryId; 

MyCategories = new Dictionary<UInt32, Category>(); 

while (rdr.Read) 
{ 
    MyCategories.Add((UInt32)rdr["category_id"], new Category(........)); 
} 

Теперь получать полный путь только зацикливание в памяти

string path = ""; 
currentCategory = MyCategories[category_id]; 

while (currentCategory != nil) 
{ 
    // StringBuilder here 
    path += "/" + currentCategory.Name; 
    currentCategory = MyCategories[Category.ParentId]; 
} 
+0

ОК Вот здорово! как только у меня есть идентификатор моего продукта (конец URL-адреса), что лучше всего подходит для обратной работы. т.е. на моей странице отображения продукта (список продуктов) вы бы рекомендовали просто конкатенировать в конце текущей категории URL (+ = /nameofproduct.aspx) или выполнить полный цикл, чтобы найти, какую категорию/подкатегорию принадлежит продукту, а затем перенаправить. надеюсь, что имеет смысл. – 2009-08-28 08:34:28

+0

Вы имеете в виду, как SELECT, cATEGORY_ID из ProductCategories WHERE product_id = идентификатор ?? –

+0

да, но, например, идентификатор категории из таблицы productcategories будет подкатегория ID например верхнего уровня категории подкатегорию другой подкатегория - продукт << идентификатор категории будет более низкого уровня. , так что тогда лучший способ получить все категории высшего уровня до этого (верхнего уровня) ID, чтобы сделать rediret goto: http://mydomain.com/продукция/первая категория/вторая категория/product.aspx. Еще раз спасибо за вашу помощь и ваше терпение. – 2009-08-28 10:15:53