Django电商第一章:立项需求分析和数据库设计
电商的7种商业模式介绍
电商即电子商务(Electronic Commerce),是是以信息网络技术为手段,以商品交换为中心的商务活动,其有多种模式:
①B2B(Business to Business):电子交易的双方都是商家,使用网络技术完成商务交易,如阿里巴巴、慧聪网等。
②B2C(Business to Consumer):直接面向消费者销售产品和服务商业零售模式,一般以网络零售业为主,主要借助互联网完成在线销售活动,如唯品会等。
③C2C(Consumer to Consumer):消费者与消费者之间的电子商务行为,通过网络技术,如闲鱼、淘宝等。
④C2B(Consumer to Business):与DSM(Demand Supply Model)相反,先由消费者提出需求,后由生产企业生产,即个性化定制,如尚品宅配等。
⑤O2O(Online to Offline):线上到线下,是指将线下的商务机会与线上结合,让互联网成为线下交易的平台,如美团、饿了么等。
⑥F2C(Factory to Consumer):工厂直接到个人,无任何中间商环节,如戴尔。
⑦B2B2C(Business to Business to Consumer):第一个B指商品或服务的供应商,第二个B指从事电子商务的企业,起整合与桥梁的作用,如京东、天猫等
项目的工作流程与具体实现
立项
搭建一个简单的测试用电商网站平台,以Django框架为基础,实现常用功能。
工作: 找一个电商平台熟悉各种业务流程
需求分析
- 1 用户模块(与用户相关的页面与功能,及校验登录)
(1)注册页:①注册时校验用户名是否占用②完成注册③发送注册邮件(点击激活链接激活);
(2)登录页:①实现用户的登录功能②实现登录后跳转回原来页面(待)③实现检测登录状态;
(3)用户中心信息页:①显示用户的详细信息②显示最近浏览的商品信息③地址/订单页跳转(侧边栏);
(4)用户中心地址页:①显示用户的当前默认收件地址②显示新增收件地址表单③侧/上边栏跳转;
(5)用户中心订单页:①显示历史订单详细信息(添加功能按钮,支付等)②边栏跳转;
(6)与用户相关的其他页面:若为已登录状态,则在顶部边栏显示用户信息(未登录显示登录跳转); - 2 商品模块
(1)首页:①动态指定轮播商品②动态指定活动页面③动态指定显示商品种类④动态指定显示首页的商品种类和信息⑤每个商品(包括图片与文字)都可链接至商品详情页⑥边栏跳转;
(2)商品详情页:①显示某商品的详情信息,并添加购物车/购买跳转②显示同类其他商品;
(3)商品列表页:①分页显示一个种类的所有商品,并支持按照默认、价格、人气排序②显示同类商品;
(4)其他:①通过搜索框按关键字搜索商品②搜索出的商品排序; - 3 购物车模块
(1)购物车页:
①显示添加到购物车的商品信息
②操作按钮,增加/减少数目/删除等,并显示结算信息;
(2)其他:
①商品详情页与列表页中添加到购物车按钮
②登录后顶部边栏显示购物车数目; - 4 订单模块
(1)提交订单页:
①展示准备购买的商品信息和价格结算
②显示用户收件地址
③提交订单完成订单创建
④自动跳转至支付页面/用户中心订单页
原型设计与项目架构
将需求按模块及其功能划分,细化到每个模块下需要实现的功能,并选择开发环境,部署架构,编写框架(Django)
数据库设计
(1)分析数据表与表字段:通过实现功能及界面设置表字段(包括一些标识字段,如账号激活/权限等级/删除等);
①使用mysql定义表单并存储信息;
②由于购物车中内容变化可能性大且频繁,因此使用redis来实现购物车功能,并用户历史浏览记录(并session);
③使用celery进行异步任务处理;
④使用fastdfs分布式文件存储系统存储图片;
(2)添加表关系:通过分析是否一对多等建立表关系,分析后建立的表如下图所示;
注:
①在多张表关联时,一般一对多的母表中是不需要存在单独字段对应子表的,但在某些特殊情况下,如在商品表中放一张图片,在同时显示多个商品时不需要多次关联查询即可显示(多用于主页/列表页),以空间换取时间;
②电商中SPU(Standard Product Unit)标准产品单位,是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性,例如iPhone7是一个SPU,其与商家/颜色/款式/套餐/配置等都无关;SKU(stock keeping unit)库存量单位,是物理上不可分割的最小存货单元,例如某颜色某款式某配置的手机,具体到单个商品。一个SPU下可以有多个SKU,因此在设计表时,需将商品的SPU与SKU表分开储存;
代码实现
代码实现是程序开发的重点工作,对于大型项目而言,单个开发者往往只承担其中几个或一个模块甚至单个模块中的部分功能,代码的整合、测试与发布也由专人负责,但在学习过程中,需要了解整个项目的架构、运作、及测试发布流程。
简单总结
搭建一个电商网站平台,实现用户注册、商品浏览、商品查询、购物车、订单、支付宝交互等多种功能,并进行缓存、静态页面、图片独立存储等优化。
①使用架构:python+Django+uWSGI+nginx
②使用数据库:MySQL+redis
③使用优化工具:FastDFS(我们会用七牛文件存储服务器代替)+celery
原文地址:https://www.cnblogs.com/bignote/p/11581850.html