分享
 
 
 

建立合理的商品类与导航类

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

建立合理的商品类与导航类

作者:abin 时间:2004.10.12 出处:http://blog.csdn.net/abinstudio

一个电子商务网站核心就是商品目录,商品目录可以分成两个部分:1.商品分类、2.导航类。如果商品导航与分类没有做好,用户在你的站点上找不到需要的商品(这个商品你有销售),这是最失败的事情。

商品分类基本要求:

1:灵活

2:可以伸缩

3:可靠

4:速度快

其实这几个要求互相制约,因为一个高度灵活的分类会在可靠性上有所损失,可伸缩性越高速度就越低。这里以程序员的角度出发进行折中处理。

很多时候认为商品目录应该是可以无限级别的,我也曾经这样认为,但是在最近一个电子商务网站的开发中发现其实这样是很不理想的,因为无限级别的分类导致系统资源的大量占用,为了解决不足,我把ASP.NET中的产品目录缓存在内存中,速度问题基本得到解决,但确占用了大量内存。因此不得不面对一次折中考虑,因为大多数中小型电子商务企业都采用虚拟主机,这就要求网站要有足够的执行效率,不然功能在好的网站都是垃圾。

下面据一些实际的分类例子:

珠宝首饰/手表/眼镜 > 藏饰、其他民族饰品 > 项链、项坠

珠宝首饰/手表/眼镜 > 宝石类饰品 > 戒指、指环

电脑/软件/网络/办公 > 全新笔记本电脑 > IBM

电脑/软件/网络/办公 > 电脑外设 > 打印机

电脑/软件/网络/办公 > 台式电脑 > 联想

电脑/软件/网络/办公 > 掌上电脑/PDA > 惠普/iPAQ

电脑/软件/网络/办公 > 耗材 > 打印纸

电脑/网络/办公设备 > 全新笔记本电脑 > 联想

电脑/网络/办公设备 > 电子辞典/电子书 > 文曲星

电脑/网络/办公设备 > 服务器/工作站/网络 > 网卡

计算机综合 >> 台式整机 >>联想

计算机综合 >> 存储设备 >> 移动硬盘

计算机综合 >> 工作站 >> HP

以上是几个大型B2C于C2C网站商品分类的摘抄,也是大家熟悉的分类形式,下面开始分析:

在我写前几套电子商务网站系统的时候犯过一个错误,这个错误是一个经验问题。

表面上看以上的商品都是分成三类,关系是从大到小依次。因此在设计数据库的时候就像这个样子:

以 “计算机综合 >> 台式整机 >>联想”为例子

--------------------------------------------------------------------------------

CategoryId Description ParentCategoryId

1 计算机综合 NULL

2 台式整机 1

3 联想 2

--------------------------------------------------------------------------------

看上去很合理,因为数据库是自己设计的,感觉一点问题都没有,逻辑也很正确,导航类与商品分类在一起,即实现了商品导航,也实现了商品分类。但是当网站开始使用的时候问题就来了,网站管理人员告诉我类很难分,经常容易弄错(人的逻辑思维对二级分类很灵活,而对三级确很笨拙)。另外,由于采用上面的三级分类,在编写程序的时候难度也增加,首先是存储过程,在模拟的好几百个类别中明显感觉到效率变低的很厉害(因为每次读取二级目录的时候都要遍历读取第三级目录),更重要的是在设计商品导航的时候变得死板,如果想更改一个导航名称就需要更改所有的商品所属类。

再次坐下来分析问题,解决上面的缺陷。其实“计算机综合 >> 台式整机 >>联想”这个分类中可以看成是二级分类,即“台式整机 >>联想”而不是三级。二级目录大家都知道是非常容易实现的,如下:

--------------------------------------------------------------------------------

CategoryId Description ParentCategoryId

1 台式整机 NULL

2 联想 1

3 存储设备 NULL

4 移动硬盘 3

5 工作站 NULL

6 HP 5

--------------------------------------------------------------------------------

只要ParentCategoryId为NULL的就是主目录,不为NULL的就是次级目录,在使用存储过程读取的时候也简单很多,不需要遍历第三级,效率自然很高了,再加上使用ASP.NET的缓存技术,在读取商品分类的时候先判断缓存中是否有分类,如果有就从分类读取,如果没有就从数据库读取,这样速度问题解决。但是二级分类是无法满足商品分类导航的,为了方便客户找到自己需要的商品,解决办法是再添加两个表,叫“CatalogLists”“CatalogListItems”用处是引用相关的类到这个表中,先看看表结构:

---------------------------------------------------------------------------------

CatalogLists:

CatalogListId Description

1 计算机综合

2 手机综合

3 办公设备

---------------------------------------------------------------------------------

CatalogListItems:

CatalogListItemId CategoryId CatalogListId AdminDescription

1 1 1 计算机综合类

2 3 1 计算机综合类

3 5 1 计算机综合类

---------------------------------------------------------------------------------

通过以上三个表,实现了二级目录与导航类的实现,总的效果看起来就是三级目录,操作过程是这样的:

首先读取导航目录清单CatalogLists,然后读取引用表中的CategoryId ,进而读取相应二级的分类。而在商品导航设计时变的非常简单,只要读取CatalogLists,任何一个商品导航名称的变化也只要更改CatalogLists这一个表中的名称(商品导航名称的变化在电子商务网站中时常出现,如因为节假日促销等等原因)

总结,从表的结构复杂了不少,但是在SQL语句编写的时候确不复杂,导航栏的设计也灵活了,可以随时变化与添加,由于只有一个表,效率自然很高。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有