目前在做一个c2c电子商务网站,主要是想借此提高自己的水平,现在遇到的问题就是不知道商品表是建一个还是建多个,主要是考虑到其性能以及用户用起来是否方便!我现在做的是建了一个表,所有的商品都在一个表中,这就导致不能很好的区分不同商品的不同属性,比如:鞋子应该有颜色、鞋码等等一系列属性,而手机应该有型号、功能等等的属性,我现在做的并不能很好的区分商品的这些属性!昨天将问题发布在数据库分类里,结果都没有人回答,今天只有发布这了!希望高手们指点指点!本人不胜感激!

解决方案 »

  1.   

    首先,做电子商务必须了解SKU的概念,否则设计的表结构是有问题的,同时必须了解业务,不论B2B、B2C、C2C,只有这样才能设计出适合自己的表结构,我提一个比较好的设计方案,目前这一方案只有少数几家在用,不但性能好,而且扩展性较强,可以解决很多问题,比较适合百货类的电子商务网站。
    1、首先必须认识到什么是商品,什么是产品,商品是负责销售价格显示的,和库存没关系,产品是负责库存的,和销售价格没关系。如果你理解SKU,那么就明白为什么要这么设计,C2C一般不需要输入采购价格,所以不需要考虑这点,B2C不仅仅需要考虑库存,还有库位、代销和经销,这是由业务所决定的。根据这点,你就至少设计2张表了,商品和产品,有人可能会说,为什么不放在同一表中?其实是为了做更多的事,比如说调价历史,有了这个数据,可以为卖主提供更多的服务,呵呵,这时后话了。商品还有一点,需要负责显示所属产品的颜色、尺寸,至于为什么这么设计,请看第2部分,Style表
    2、Style表是做什么的呢?是同种商品的基本属性。比如说鞋子吧,如果你去买鞋子,发现同款鞋子,不同尺寸的型号相同,一般的电子商务会怎么做呢?你会发现相同款式,不同尺寸也会出现在同一列表中,为了卖一款鞋的不同尺寸,卖主必须登上不少的商品,卖主好累啊,同一页显示相同的商品,好难选啊,影响用户体验。所以我们设计这个表,只用显示一个,然后到Detail页面去选择不同尺寸。对于衣服等,还有不同的颜色。为什么不把价格和Style放一起呢?因为百货类的商品千奇百怪,你会发现同一款,不同颜色的价格会不一样的,如果你放在Style显示相同价,卖主只能上2件Style的商品了。同款推荐也很难做。
    3、套装表,这个自己考虑,顾名思义就是把不同商品组合成套装,方便卖主促销
    4、关系表。建立三大关系表、商品对应产品 商品对应Style,Style对应套装。
    5、分类表。能显示每分类的数量,建议上缓存或XML,甚至是MemoryCache,千万别直接读数据库啊,否则你的数据库会被实时统计数量拖死。
    6、最后几点建议,如果你的访问量会很大,建议上反向代理加负载均衡。