【左扬】Go自研项目——项目需求与设计——[xxx客户公司名称] 购物电商平台概要设计说明书

[xxx客户公司名称] 购物电商平台概要设计说明书

一、引言

1.1、编写目的

  本概要设计说明书旨在基于需求规格说明书,对 `[xxx客户公司名称]购物电商平台` 进行总体架构设计、数据结构及数据库设计,为后续的详细设计和开发工作提供清晰的指导框架,确保系统开发符合客户需求并具备良好的可扩展性和可维护性。

1.2、项目背景

  客户拥有实体门店,主营母婴产品,为拓展线上销售渠道,提升品牌影响力和市场竞争力,计划开发类似淘宝的购物电商平台,并与现有实体门店进销存管理系统集成。

1.3、参考资料

- [xxx客户公司名称]购物电商平台需求规格说明书
- 母婴行业电商平台相关研究报告
- 电商平台开发相关技术文档

二、系统总体结构设计

2.1、系统架构概述

  本购物电商平台采用分层架构设计,主要包括表现层、业务逻辑层、数据访问层和数据存储层,各层之间职责明确,通过接口进行交互,提高系统的可维护性和可扩展性。

2.2、模块划分

系统主要分为前台功能模块和后台管理功能模块,具体模块划分如下:

- 前台功能模块:网站首页、商品列表页、商品详情页、购物车、个人中心、用户登录注册等。
- 后台管理功能模块:商品管理、订单管理、用户管理、营销活动管理、数据统计与分析、与实体门店进销存管理系统集成等。

2.3、系统架构图

三、数据机构及数据库设计

3.1、数据库选型

  本系统使用 MySQL 8.0x 以上版本作为数据库管理系统,以满足系统对数据存储、查询和管理的高性能需求。

3.2、数据表设计

3.2.1、商品信息表(product)

字段名类型约束说明
product_id int 主键,自增 商品的唯一标识符,系统自动生成,从1开始递增,用于唯一标识每一个商品记录。
product_name varchar(100) 非空 商品的名称,不能为空,用于在商品列表、详情页等地方展示商品的名称,长度限制为100个字符以内。
category_id int 外键,关联商品类目表 商品所属的类目ID,通过外键与商品类目表关联,用于对商品进行分类管理,方便用户浏览和筛选商品。
price decimal(10, 2) 非空 商品的价格,使用decimal类型确保价格计算的准确性,总位数为10位,其中小数点后保留2位,不能为空,是商品交易时的重要依据。
stock int 非空 商品的库存数量,表示当前仓库中该商品的剩余数量,不能为空,用于控制商品的销售,当库存为0时,通常商品会显示为缺货状态。
description text   商品的详细描述,用于介绍商品的特点、功能、使用方法、材质等详细信息,没有长度限制,方便商家全面展示商品信息,供用户参考。
image_url varchar(255)   商品图片的URL地址,用于在商品详情页等地方展示商品的图片,方便用户直观地了解商品的外观,长度限制为255个字符以内,以适应常见的URL长度。
create_time datetime 默认当前时间 商品的创建时间,记录商品信息被录入系统的时间,默认值为当前系统时间,用于追溯商品的创建时间,了解商品的上架时间等信息。
update_time datetime 默认当前时间,更新时自动更新(可通过数据库触发器或ORM框架实现) 商品的更新时间,记录商品信息最后一次被修改的时间,默认值为当前系统时间,当商品信息发生变更时,该字段会自动更新为最新的修改时间,用于追踪商品的修改历史。

3.2.2、商品类目表(category)

字段名类型约束说明
category_id int 主键,自增 类目的唯一标识符,系统自动生成,从1开始递增,用于唯一标识每一个类目记录,是类目表的主键,保证类目数据的唯一性和完整性。
category_name varchar(50) 非空 类目的名称,不能为空,用于在商品分类导航、商品列表筛选等地方展示类目的名称,方便用户快速定位和选择所需商品类别,长度限制为50个字符以内。
parent_id int 默认0,外键,关联自身表 父类目ID,用于构建类目的层级关系。默认值为0,表示该类目为一级类目,即顶级类目,没有上级类目;若类目存在上级类目,则该字段值为上级类目的category_id,通过这种自关联的方式,可以支持多级类目的结构,方便对商品进行更细致的分类管理。
sort_order int 默认0 类目排序字段,用于控制类目在前端展示时的顺序。默认值为0,当多个类目在同一层级时,sort_order值较小的类目会优先展示在前,商家或管理员可以根据业务需求调整该字段的值,以改变类目的展示顺序,优化用户体验。

补充说明

    • 多级类目示例:比如在一个电商系统中,一级类目可以是“服装”,其category_id为1,parent_id为0;二级类目“男装”和“女装”的parent_id则为1,分别关联到“服装”这个一级类目;三级类目“衬衫”“裤子”等可以进一步关联到“男装”或“女装”二级类目。

    • 排序应用场景:在商品分类导航栏中,如果“电子产品”类目的sort_order为1,“家居用品”类目的sort_order为2,那么在前端页面上,“电子产品”类目会显示在“家居用品”类目的前面,方便用户优先看到重要的或热门的类目。 

3.2.3、购物车信息表(cart)

字段名类型约束说明
cart_id int 主键,自增 购物车的唯一标识符,系统自动生成,从 1 开始递增,用于唯一标识每一个购物车记录,保证购物车数据的唯一性和完整性。
user_id int 外键,关联用户表 关联到用户表的用户 ID,用于标识该购物车记录属于哪个用户,通过外键约束确保数据的关联性和一致性,一个用户可以拥有一个或多个购物车记录(通常是一个用户对应一个购物车,但购物车中可包含多个商品记录)。
product_id int 外键,关联商品信息表 关联到商品信息表的商品 ID,用于标识购物车中包含的商品,通过外键约束确保商品信息的准确性,一个购物车记录对应一个商品,但一个购物车(以用户维度)可包含多个不同的商品记录。
quantity int 非空,默认 1 商品在购物车中的数量,不能为空,默认值为 1,用户可以将商品添加到购物车,并指定数量,后续可以对数量进行修改,该字段用于记录用户当前想要购买的商品数量。
add_time datetime 默认当前时间 商品被添加到购物车的时间,默认值为当前系统时间,用于记录用户添加商品到购物车的具体时间,方便后续统计和分析用户的购物行为,例如查看用户最近添加到购物车的商品等。

3.2.4、订单信息表(order)

字段名类型约束说明
order_id varchar(32) 主键 订单的唯一标识符,采用长度为 32 的字符串类型,通常可以使用 UUID(通用唯一识别码)或其他唯一标识生成算法来生成,确保每个订单 ID 的唯一性,用于在系统中唯一标识每一个订单记录。
user_id int 外键,关联用户表 关联到用户表的用户 ID,用于标识该订单属于哪个用户,通过外键约束确保数据的关联性和一致性,一个用户可以生成多个订单。
total_amount decimal(10, 2) 非空 订单的总金额,即用户下单时所有商品的价格总和(可能包含运费等额外费用,但此处未单独列出运费字段,可根据实际业务需求调整),使用 decimal 类型确保金额计算的准确性,总位数为 10 位,其中小数点后保留 2 位。
payment_amount decimal(10, 2) 非空 用户实际支付的金额,在某些情况下,可能由于优惠券、折扣等因素,实际支付金额会小于订单总金额,同样使用 decimal 类型确保金额计算的准确性。
payment_method varchar(20)   支付方式,用于记录用户选择支付订单的方式,例如“支付宝”“微信支付”“银行卡支付”等,长度限制为 20 个字符以内,可根据实际业务需求扩展支付方式类型。
shipping_address varchar(255) 非空 收货地址,用于记录用户指定的商品送达地址,长度限制为 255 个字符以内,确保能够完整记录收货地址信息,包括省市区、详细地址等。
order_status tinyint 非空,默认 0 订单状态,用于标识订单当前的处理状态,默认值为 0,表示待付款。不同状态值代表不同的订单处理阶段,方便商家和用户了解订单的进展情况:
- 0:待付款,用户已下单但尚未完成支付;
- 1:已付款,用户已完成支付,等待商家处理订单;
- 2:待发货,商家已确认订单,正在准备商品进行发货;
- 3:已发货,商品已发出,可提供物流单号供用户查询物流信息;
- 4:已完成,用户已收到商品且无售后问题,订单交易完成;
- 5:已取消,用户或商家取消了订单。
create_time datetime 默认当前时间 订单创建时间,记录用户下单的时间,默认值为当前系统时间,用于追溯订单的生成时间,方便后续统计和分析用户的下单行为。
pay_time datetime   支付时间,记录用户完成订单支付的时间,当订单状态变为已付款时,该字段会被更新为实际的支付时间,可用于分析用户的支付习惯和订单支付效率。
shipping_time datetime   发货时间,记录商家将商品发出的时间,当订单状态变为已发货时,该字段会被更新为实际的发货时间,方便用户了解商品的发货进度。
complete_time datetime   完成时间,记录订单交易完成的时间,即用户确认收货且无售后问题的时间,当订单状态变为已完成时,该字段会被更新为实际的完成时间,用于统计订单的完成周期和业务指标。
cancel_time datetime   取消时间,记录订单被取消的时间,当订单状态变为已取消时,该字段会被更新为实际的取消时间,可用于分析订单取消的原因和时间分布。

3.2.5、用户表(user)

字段名类型约束说明
user_id int 主键,自增 用户的唯一标识符,系统自动生成,从 1 开始递增,用于唯一标识每一个用户记录,保证用户数据的唯一性和完整性。
username varchar(50) 唯一,非空 用户名,用户在系统中的登录名称,不能为空且具有唯一性,长度限制为 50 个字符以内,方便用户记忆和登录系统,同时确保用户名在系统中不重复。
password varchar(100) 非空 用户密码,采用加密存储方式(如 MD5、SHA256 等加密算法结合盐值进行加密),确保用户密码的安全性,不能为空,用于用户登录系统时进行身份验证。
phone varchar(20) 唯一 手机号,用户的联系电话,具有唯一性,长度限制为 20 个字符以内,可用于用户注册、登录、找回密码等操作,同时也是商家与用户沟通的重要方式之一。
email varchar(100) 唯一 邮箱,用户的电子邮箱地址,具有唯一性,长度限制为 100 个字符以内,可用于接收系统通知、营销邮件等信息,方便用户及时了解账户动态和平台活动。
register_time datetime 默认当前时间 用户注册时间,记录用户注册成为系统会员的时间,默认值为当前系统时间,用于统计用户注册量、分析用户增长趋势等业务需求。
last_login_time datetime   用户最后登录时间,记录用户最近一次登录系统的时间,可用于分析用户的活跃度,了解用户的使用频率和习惯,为后续的运营和推广提供数据支持。
user_level tinyint 默认 1 用户等级,用于标识用户在系统中的等级,默认值为 1,不同等级可能对应不同的权益和特权,例如积分倍数、专属优惠等,可根据业务规则对用户等级进行划分和升级。
integral int 默认 0 用户积分,用于记录用户在系统中的积分数量,默认值为 0,积分可通过多种方式获取,如购物消费、参与活动等,积分可用于兑换商品、优惠券等福利,激励用户活跃和消费。

3.2.6、用户记录表(user_record)

字段名类型约束说明
record_id int 主键,自增 用户记录的唯一标识符,系统自动生成,从 1 开始递增,用于唯一标识每一个用户记录,保证用户记录数据的唯一性和完整性。
user_id int 外键,关联用户表 关联到用户表的用户 ID,用于标识该记录属于哪个用户,通过外键约束确保数据的关联性和一致性,一个用户可以有多条不同的记录。
record_type tinyint 非空 记录类型,用于区分不同类型的用户记录,不能为空,不同的记录类型值代表不同的记录内容,例如:
- 1:登录记录,记录用户的登录行为;
- 2:购买记录,记录用户的购买订单信息;
- 3:收藏记录,记录用户收藏的商品信息等。可根据实际业务需求扩展记录类型。
record_content text   记录内容,用于存储与该记录相关的详细信息,采用 text 类型,可容纳较长的文本内容,具体内容根据记录类型而定,例如登录记录可记录登录 IP、登录设备等信息;购买记录可记录订单号、购买商品列表等信息;收藏记录可记录收藏的商品 ID、收藏时间等信息。
create_time datetime 默认当前时间 记录创建时间,记录该用户记录生成的时间,默认值为当前系统时间,用于追溯记录的生成时间,方便后续统计和分析用户的行为记录。

3.3、数据库关系图

四、各页面概要设计

4.1、网站首页

4.1.1、页面布局

网站首页分为 5 个不同的功能区域:商品搜索功能区、网站导航区、广告轮播区、商品分类热销区、网站尾部信息区。

4.1.2、各功能区域概要设计

4.1.2.1、商品搜索功能区

- 位置:位于网站导航栏上方。
- 功能:提供搜索框,支持关键词搜索,用户输入关键词后点击搜索按钮或按回车键,系统跳转到商品列表页并展示相关商品。搜索框旁边可设置搜索历史记录和热门搜索词提示。

4.1.2.2、网站导航区

- 位置:位于页面顶部。

- 功能:展示网站的主要功能模块导航,包括首页、所有商品分类、购物车、个人中心等。导航栏采用下拉菜单形式,点击商品分类可展开子分类,方便用户快速找到所需商品。

4.1.2.3、广告轮播区

- 位置:位于网站导航栏下方。
- 功能:展示平台的促销活动、新品推荐等广告图片,支持自动轮播和手动切换。点击广告图片可跳转到相应的商品详情页或活动页面。

4.1.2.4、商品分类热销区

- 位置:位于广告轮播区下方。
- 功能:按照母婴产品的类别(如奶粉、尿不湿、玩具、服装等)进行分类展示,每个分类下展示该分类的热销商品。商品以图片加名称的形式展示,用户点击商品图片即可进入商品详情页。

4.1.2.5、网站尾部信息区

- 位置:位于页面底部。
- 功能:展示网站的版权信息、备案信息、联系方式、关于我们、帮助中心等链接,方便用户了解网站相关信息和获取帮助。

4.2、商品列表页

4.2.1、页面布局

商品列表页分为 4 个功能区域:商品筛选区、商品排序区、商品展示区、分页导航区。

4.2.2 各功能区域概要设计

4.2.2.1、商品筛选区

- 位置:位于页面左侧。
- 功能:提供多种筛选条件,如按价格区间、品牌、销量、评价等进行筛选。用户可根据自己的需求选择相应的筛选条件,系统实时更新商品展示区的内容。

4.2.2.2、商品排序区

- 位置:位于商品展示区上方。
- 功能:提供商品排序方式选择,如按综合排序、价格从低到高、价格从高到低、销量从高到低等。用户选择排序方式后,系统按照所选方式对商品进行排序展示。

4.2.2.3、商品展示区

- 位置:位于页面中部。
- 功能:以列表形式展示符合筛选条件的商品,每个商品展示商品图片、名称、价格、销量、评价等信息。用户点击商品图片或名称可进入商品详情页。

4.2.2.4、分页导航区

- 位置:位于页面底部。
- 功能:当商品数量较多时,采用分页展示的方式。分页导航区提供上一页、下一页、页码跳转等功能,方便用户浏览不同页面的商品。

4.3 购物车页面

4.3.1 页面布局

购物车页面分为 3 个功能区域:购物车商品列表区、商品结算区、推荐商品区。

4.3.2 各功能区域概要设计

4.3.2.1、购物车商品列表区

- 位置:位于页面左侧。

- 功能:展示用户添加到购物车的所有商品,每个商品显示商品图片、名称、规格、单价、数量、小计等信息。用户可对商品数量进行修改、删除商品、勾选或取消勾选商品。勾选商品后,商品结算区会实时更新总价和优惠信息。

4.3.2.2、商品结算区

- 位置:位于页面右侧。
- 功能:显示购物车中已勾选商品的总价、优惠金额、应付金额等信息。提供结算按钮,用户点击结算按钮后进入订单结算页面。同时,结算区可展示用户可用的优惠券信息,用户可选择使用优惠券享受相应优惠。

4.3.2.3、荐商品区

- 位置:位于购物车商品列表区下方。
- 功能:根据用户购物车中的商品,推荐相关的其他商品,增加用户购买的可能性。推荐商品以图片加名称的形式展示,用户点击商品图片可进入商品详情页。

4.4 个人中心页面

4.4.1 页面布局

  个人中心页面分为多个功能区域,主要包括用户信息区、订单管理区、收藏夹区、地址管理区、优惠券区、积分区、设置区等,整体布局类似淘宝个人中心页面。

4.4.2 各功能区域概要设计

4.4.2.1、用户信息区

- 位置:位于页面顶部。
- 功能:展示用户的头像、用户名、用户等级、积分等信息。用户可点击头像或用户名进入个人信息修改页面,修改头像、昵称、手机号、邮箱等基本信息。

4.4.2.1、订单管理区

- 位置:位于用户信息区下方。
- 功能:以选项卡形式展示用户的所有订单,包括待付款、已付款、待发货、已发货、已完成等不同状态的订单。用户点击相应选项卡可查看对应状态的订单列表,点击订单可进入订单详情页,查看订单的详细信息和物流状态。

4.4.2.1、收藏夹区

- 位置:位于订单管理区下方。
- 功能:展示用户收藏的商品列表,每个商品显示商品图片、名称、价格等信息。用户可对收藏的商品进行删除操作,点击商品图片可进入商品详情页。

4.4.2.1、 地址管理区

- 位置:位于收藏夹区下方。
- 功能:展示用户已保存的收货地址列表,用户可添加新的收货地址、修改或删除现有收货地址。在订单结算页面,用户可选择已保存的收货地址作为订单的收货地址。

4.4.2.1、优惠券区

- 位置:位于地址管理区下方。
- 功能:展示用户已领取的优惠券列表,显示优惠券的名称、面值、使用条件、有效期等信息。用户在订单结算页面可使用符合条件的优惠券享受优惠。

4.4.2.1、积分区

- 位置:位于优惠券区下方。
- 功能:展示用户的积分余额和积分明细,积分明细记录用户积分的变化情况,如购物获得积分、签到获得积分、使用积分抵扣等。用户可使用积分在积分商城兑换商品或优惠券。

4.4.2.1、设置区

- 位置:位于页面底部。
- 功能:提供账户安全设置、消息通知设置、帮助中心等链接。用户可在账户安全设置中修改登录密码、支付密码,绑定或解绑手机号、邮箱等;在消息通知设置中开启或关闭各类消息提醒;在帮助中心可查看常见问题解答和使用教程。

五、概要设计文档说明

5.1 文档更新与维护

本概要设计文档在项目开发过程中将根据实际情况进行更新和维护。任何对系统架构、数据结构或功能模块的修改都应及时反映在文档中,确保文档与系统实现保持一致。

5.2 文档评审

在完成概要设计文档后,将组织公司内部的技术、设计、测试等相关人员对文档进行评审,确保文档的完整性、准确性和可行性。根据评审意见对文档进行修改和完善,直至通过评审。

5.3 文档交付

评审通过后的概要设计文档将作为项目开发的重要依据交付给开发团队,开发团队应严格按照文档要求进行系统的详细设计和开发工作。

  以上为[xxx客户公司名称]购物电商平台的概要设计说明书,后续的详细设计和开发工作将在此基础上展开。在项目实施过程中,如需对设计进行变更,应按照公司规定的设计变更流程进行操作,确保项目的顺利进行。

需求工程师:[姓名]
日期:[具体日期]

posted @ 2025-05-05 14:12  左扬  阅读(116)  评论(0)    收藏  举报