zoukankan      html  css  js  c++  java
  • 电子商务系统的商品实体分析和设计

    一、需求调研及分析

    对于电子商务销售的广义商品主要分为两种:1、无形商品和服务的电子商务;有形商品和服务的电子商务。

    无形商品和服务一般包括:

    1)在线订阅。分为免费订阅和收费订阅;

    2)特殊信息收费方式。一般分为免费信息和特殊信息,使用下载方式提供;

    3)在线服务。每月收取固定的费用,为消费者提供各种在线服务的方式,比如QQ会员,邮箱包月,杀毒包月等;

    4)在线娱乐。包括网络游戏的按月、按时收费等。

    有形商品和服务一般表现为网上销售。

     

    二、产品抽象设计

    产品目录及产品价格不在本文讨论范围内。

     

    根据需求,具体到实际类型的各种“商品”有很多种类型,其属性差异很大,所以在设计上考虑到以后的扩展性,将商品设计成为继承的方式。

    如上图所示。设计一个抽象类Product,放置商品的公共属性(部分),左边为有形商品,命名为
    SalesProduct,有形商品包含高度、宽度、长度和重量等无形商品不具备的属性;右边为无形商品,包括在线订阅、在线服务,信息下载等。

    所有关系都是泛化关系,一对一。

    对于一般的网上商城的设计,只需设计SalesProduct即可,但对于电子商务产品而言,则需要考虑以后的

    扩展性。

     

    由于产品的抽象,所以在对产品的创建考虑使用工厂模式。

    public class ProductFactory {

    private static ProductFactory productFactory=null;

    private ProductFactory(){}

    public ProductFactory getInstance(){

    if(productFactory==null){

    productFactory =new ProductFactory();

    }

    return productFactory;

    }

    public Product makeProduct(Integer productType){

    //根据产品类型返回相应的产品

    return null;

    }

    }

     

    OK。下一步让我们继续分析SalesProduct更加具体的内容。

     

    三、产品详细设计

    下图是www.joyo.com的影视产品详细页面,由于比较长,所以我只贴出第一页,详细可见下面链接:

    http://www.joyo.com/detail/product.asp?uid=wusue1ibcs9ug7g9aaggssg57&pageletid=showTopRenqi&prodid=bkys613058&ref=CN_TS

     

    图中用红色圈圈圈住的部分分别为产品标题、演员&导演、价格区、送货方式、用户评分(一种C2B方式)、促销推荐、描述(及其它属性)。

    还有不在图中的信息有:内容介绍、购买此商品的顾客也购买了、查看此商品的顾客也查看了、产品参数、本片的主要演员的其它作品、常见问题、用户评论、您可以用以下几种方式找到此商品。

     

    噢!内容太多了。怎么着手呢?

    我们分析的思路应该考虑那些是产品本身的属性、那些是关系密切的外部实体,那些是关系较松散的外部实体。

     

    经过分析的内容分类如下:

     

    您也许会奇怪,我为什么始终都没有将价格放入到产品本身呢?因为就电子商务的销售而言,价格是变化很频繁、而且同一个商品会有多种价格(会员等级)、并和各种的促销形式、进货价格等挂钩。所以如果直接做为产品的自有属性将大大降低了灵活性,导致很多业务都无法实现(或者很困难)。

     

    考虑到篇幅和重点。本文只讨论产品本身的属性设计。

    对于一个商城而言,产品种类很多,各类产品的相关属性各种各样,如电影会涉及到演员&导演、一些特定的产品参数,如视频格式、音频格式等。

    而有一些属性则是所有产品都共有的,比如产品标题、描述、内容介绍等。

    所以在设计上需要考虑到这两类属性的区别。

     

    我将之区分为公共属性和自定义属性。

    公共属性将放入SalesProduct表,自定义属性则设计如下:

    设计考虑,所有Attribute都必须有一个或者多个Options(否则状态为不可用),每个

    Option都有类型、值、名称和是否缺省等属性。产品只会指向Option,关系是多对多。

     

    这样,我们就可以增加演员Attribute

    (演员在影视管理系统中是实体,在电子商务销售系统则只是一个值对象了)

    在演员Attribute下增加梁朝伟、徐静蕾等演员(Option)。

    然后将伤城这个产品和该Option进行关联。

    产品参数等属性类似。

     

    但是,我们也发现,对于自定义属性而言,有些属性是比较重要的,有些是不重要的。

    比如演员,不单是放在标题下这个醒目的地方,而且还有业务挖掘——本片的主要演员的其它作品。

    所以,需要对自定义属性进行进一步的配置。但是这就不属于自定义属性本身的范畴了。

    我们将会另行设计一个实体来表达这种业务。

  • 相关阅读:
    react-router刷新页面Cannot GET 问题
    react学习之弹出层
    react学习之js-xlsx导入和导出excel表格
    c#串口通信并处理接收的多个参数
    react与微信小程序
    promise知识点小结
    汇编命令小记
    Firebase-config 在android中的使用
    python:html元素解析
    Toast实现源码解析
  • 原文地址:https://www.cnblogs.com/yefengmeander/p/2887877.html
Copyright © 2011-2022 走看看