数据库大作业-Python Django开发购物网站完整流程
前言
一、需求分析
1,功能设计
二、数据库设计
1,概念设计
2,逻辑设计
3,物理设计:
四,系统功能设计
1,功能层次图:
2,系统功能模块详细设计
五,技术环境
六、代码实现
目录结构图:
实现浏览:
前言
数据库项目开发,要经历需求饭呢西,概念数据,逻辑设计,物理设计,功能设计等几个阶段,学习数据库系统理论时,结合了项目的开发,可能做的很菜,但是也写篇博客总结一下。
提示:以下是本篇文章正文内容,下面案例可供参考
一、需求分析
1,功能设计
B2B的商业平台功能:注册,商品上架,需求上架,下单,购物车,用户个人中心这些增删改查的功能。
数据流图:
功能流程图:
商品上架流程图
下单商品流程图
购物车业务图
需求发布流程图
个人中心流程图
二、数据库设计
1,概念设计
E-R图:
2,逻辑设计
客服( 客服ID , 用户ID,商品ID ,用户姓名,商品名称,...)
用户( 用户ID ,用户姓名, 需求ID,订单ID ,...)
需求( 需求ID ,发布人, 订单ID ,商品名,...)
商品( 商品ID ,商品名, 类别ID ,类别名,...)
类别( 类别ID ,类别名, 订单ID,商品ID ,...)
订单( 订单ID, _ 订单细节ID_ ,收货人, 物流ID ,...)
订单细节( 订单细节ID , 订单ID,商品ID ,商品名,...)
物流状态( 物流ID , 订单ID ,...)
3,物理设计:
user表:存储用户的各种信息
Product:存储商品的各种信息
Request:存储需求的各种信息
Product_category:存储商品的各种类别信息
Orders:存储订单信息
Orders_detail:存储订单细节信息
Logistic:存储订单的物流状态
User表:
存储方式:通过用户的ID进行索引递增形式的存储
属性名
|
存储名
|
变量类型
|
约束条件
|
说明
用户号
|
ID
|
Int(10)
|
主键
|
姓名
|
Name
|
Char(10)
|
非空
|
账号
|
Username
|
Char(20)
|
非空
|
密码
|
Password
|
Char(20)
|
非空
|
密码干扰
|
Salt
|
Char(5)
|
非空
|
联系电话
|
Phone
|
Char(11)
|
非空
|
行业
|
Business
|
Char(20)
|
无
|
权限
|
Jurisdiction
|
Int(1)
|
非空
|
0普通用户,1客服
创建时间
|
Create_time
|
Datetime
|
非空
| |
格式:2022-02-22 12:01:01
|
修改时间
|
Upadate_time
|
Datetime
|
非空
|
格式:2022-02-22 12:01:01
状态
|
status
|
Int(1)
|
非空
|
Product表:
存储方式:聚簇存储,通过商品的类别ID进行一类一类的存储
属性名
|
存储名
|
变量类型
|
约束条件
|
说明
商品号
|
id
|
Int(10)
|
主键
|
姓名
|
user_name
|
Char(10)
|
非空
|
联系电话
|
phone
|
Char(11)
|
非空
|
商品名称
|
Name
|
Char(20)
|
非空
|
类别
|
category_id
|
Char(10)
|
非空
|
图片
|
picture
|
Varchar(50)
|
非空
|
商品描述
|
description
|
Varchar(50)
|
非空
|
发货地址
|
address
|
Varchar(50)
|
非空
|
单价
|
price
|
Double(10,2)
|
非空
|
状态
|
state
|
Int(1)
|
非空
|
0审核中,1已上架,2已下架
创建时间
|
create_time
|
Datetime
|
非空
|
格式:2022-02-22 12:01:01
修改时间
|
update_time
|
Datetime
|
非空
|
格式:2022-02-22 12:01:01
Request表:
存储方式:根据商品的类别进行聚簇存储
属性名
|
存储名
|
变量类型
|
约束条件
|
说明
需求号
|
Id
|
Int(10)
|
主键
|
发布人
|
name
|
Char(10)
|
非空
|
发布日期
|
create_time
|
Datetime
|
非空
|
格式:2022-02-22 12:01:01
地址
|
address
|
Varchar(50)
|
非空
|
商品类别
|
category_id
|
Char(10)
|
外键
|
商品名
|
product_name
|
Char(20)
|
非空
|
商品描述
|
description
|
Varchar(50)
|
无
|
联系方式
|
phone
|
Int(11)
|
非空
|
状态
|
state
|
Int(1)
|
非空
|
0取消1审核,2上架
修改时间
|
update_time
|
datetime
|
非空
|
格式:2022-02-22 12:01:01
Product_category表:
存储方式:根据商品的主键ID进行索引存储
属性名
|
存储名
|
变量类型
|
约束条件
|
说明
类别号
|
id
|
Char(10)
|
主键
|
类别名
|
name
|
Varchar(50)
|
非空
|
类别描述
|
description
|
Varchar(50)
|
无
|
创建时间
|
create_time
|
datetime
|
非空
|
格式:2022-02-22 12:01:01
orders表(索引存储):
存储方式:根据主键订单ID递增存储
属性名
|
存储名
|
变量类型
|
约束条件
|
说明
订单号
|
id
|
Char(10)
|
主键
|
收货人
|
name
|
Char(10)
|
非空
|
联系方式
|
phone
|
Char(11)
|
非空
|
订单金额
|
money
|
Double(10,2)
|
非空
|
发货地址
|
saddress
|
Varchar(50)
|
非空
|
收获地址
|
daddress
|
Varchar(50)
|
非空
|
状态
|
state
|
Int(1)
|
非空
|
0未发货,1运送中,2已完成
创建时间
|
create_time
|
datetime
|
非空
|
格式:2022-02-22 12:01:01
修改时间
|
update_time
|
datetime
|
非空
|
格式:2022-02-22 12:01:01
Orders_detail表(聚簇存储):
存储方式:订单号进行细节号递增方式和订单号进行一类存储
属性名
|
存储名
|
变量类型
|
约束条件
|
说明
细节号
|
id
|
Char(10)
|
主键
|
订单号
|
orders_id
|
Char(10)
|
外键
|
商品号
|
Product_id
|
Int(10)
|
外键
|
商品名称
|
name
|
char(20)
|
非空
|
单价
|
price
|
Double(10,2)
|
非空
|
数量
|
quantity
|
Int(10)
|
非空
|
logistics表(索引存储):
存储方式:根据订单号进行聚簇一类的存储
属性名
|
存储名
|
变量类型
|
约束条件
|
说明
物流号
|
Id
|
Char(10)
|
主键
|
订单号
|
orders_id
|
Char(10)
|
外键
|
已到地
|
address
|
Varchar(50)
|
非空
|
状态
|
state
|
Int(1)
|
非空
|
0运输中,1已到达
创建时间
|
Create_time
|
datetime
|
非空
|
格式:2022-02-22 12:01:01
修改时间
|
Update_time
|
datetime
|
非空
|
格式:2022-02-22 12:01:01
Django_session表(自动生成):
属性名
|
存储名
|
变量类型
|
约束条件
|
说明
密钥
|
Session_key
|
Varchar(40)
|
非空
|
数据
|
Session_data
|
longtext
|
非空
|
时间
|
Expire_date
|
Datetime(6)
|
非空
|
四,系统功能设计
1,功能层次图:
2,系统功能模块详细设计**
功能:注册,登录,商品模块(商品上架,商品下架,商品修改,商品显示),需求模块(需求上架,需求取消,需求修改,需求显示),订单模块(购买商品,购物车,订单修改,订单显示)。
PIO图:
模块:
|
用户输入注册信息
模块编号:
|
001
被调用模块:
|
用户登录
调用模块:
|
用户注册
输入:
|
用户的注册信息
输出:
|
用户信息记录
处理描述:
|
将用户的注册信息封装记录保存
数据元素:
|
用户注册的各项信息
模块:
|
用户输入登录信息
模块编号:
|
002
被调用模块:
|
商品,需求,订单模块
调用模块:
|
用户登录
输入:
|
用户的登录信息
输出:
|
用户的登录会话记录
处理描述:
|
用户登录后将信息以会话封装记录
数据元素:
|
用户注册保存的各项信息
模块:
|
用户填写上架商品信息
模块编号:
|
003
被调用模块:
|
商品显示
调用模块:
|
商品上架
输入:
|
用户填写的商品信息
输出:
|
用户要上架的商品单
处理描述:
|
将用户填写的商品信息封装记录以待审核
数据元素:
|
用户填写的各项商品信息
模块:
|
用户修改商品信息
模块编号:
|
004
被调用模块:
|
商品发布
调用模块:
|
商品修改
输入:
|
用户填写要修改的商品信息
输出:
|
修改的商品信息更新到商品单
处理描述:
|
原封装记录上更新信息待审核
数据元素:
|
用户的各项商品信息
模块:
|
下架商品
模块编号:
|
005
被调用模块:
|
商品显示
调用模块:
|
下架商品
输入:
|
下架的程序指令
输出:
|
将封装记录的商品信息变为不可显示
处理描述:
|
有关商品信息不再在页面中显示
数据元素:
|
商品的各项信息
模块:
|
需求上架
模块编号:
|
006
被调用模块:
|
需求显示
调用模块:
|
需求上架
输入:
|
用户填写的各项需求信息
输出:
|
用户需求信息记录单
处理描述:
|
将用户需求信息封装记录显示
数据元素:
|
用户各项需求信息
模块:
|
需求修改
模块编号:
|
007
被调用模块:
|
需求显示
调用模块:
|
需求修改
输入:
|
用户在原需求信息基础上填写修改的信息
输出:
|
用户需求信息更新的记录单
处理描述:
|
更新的用户需求信息封装记录显示
数据元素:
|
用户各项需求信息
模块:
|
需求取消
模块编号:
|
008
被调用模块:
|
需求显示
调用模块:
|
需求取消
输入:
|
下架需求的指令
输出:
|
将封装记录的需求信息变为不可显示
处理描述:
|
不再在主页面中显示用户的需求信息
数据元素:
|
各项需求信息的内容
模块:
|
购物车
模块编号:
|
009
被调用模块:
|
购买商品
调用模块:
|
购物车
输入:
|
用户选择的各项商品和商品信息
输出:
|
用户选择的商品封装会话记录
处理描述:
|
将用户选择的商品记录显示
数据元素:
|
用户选择的商品
模块:
|
购买商品
模块编号:
|
010
被调用模块:
|
订单显示
调用模块:
|
购买商品
输入:
|
用户购物车中或直接下单的商品
输出:
|
下单的商品封装记录于表
处理描述:
|
将下单的商品记录后显示在个人页面中
数据元素:
|
用户下单的各项商品信息
模块:
|
订单修改
模块编号:
|
011
被调用模块:
|
订单显示
调用模块:
|
订单修改
输入:
|
用户修改订单中的个人信息
输出:
|
修改的原订单信息封装记录
处理描述:
|
将修改后订单信息显示在个人页面中
数据元素:
|
用户的订单信息
模块:
|
物流显示
模块编号:
|
012
被调用模块:
|
订单
调用模块:
|
物流显示
输入:
|
用户填写的订单地址信息和更新的物流信息
输出:
|
订单信息中的物流信息
处理描述:
|
将物流信息显示到页面中
数据元素:
|
用户的订单信息中的物流地址信息
五,技术环境
前端:HTML, CSS, JavaScript, Ajax
后端:Python3.8,mysql,djnago3.2
六、代码实现
目录结构图:
fish
-__init__py
-asgi.py
-settings.py
-urls.py
-wsgi.py
myadmin(管理员页面)
-migrations
-__init__.py
-view.py
-__init__.py
-category.py(类别)
-index.py(主页)
-orders.py(订单)
-product.py(商品)
-request.py(需求)
-user.py(用户)
-__init__.py
-admin.py
-apps.py
-models.py
-shopmiddleware.py(中间件)
-urls.py
-test.py
web
-migrations.py
-__init__.py
-views.py
-__init__.py
-car.py
-index.py
-chat.py
-orders.py
-user_center_index.py
-user_center_order.py
-user_center_product.py
-user_center_request.py
-__init__.py
-admin.py
-apps.py
-models.pu
-urls.py
-test.py
static:
myadmin
-category: add.html,edit.html,index.html,info.html
-index:index.html,login.html
-orders:detail.html,edit.html,index.html,info.html,logistic.html
-product:add.html,edit.html,index.html,info.html
-request:add.html,edit.html,index.html,info.html
-user:add.html,edit.html,index.html,info.html
base.html,info.html
web
-chat: admin_index.html,index.html
-index:index.html,info.html,login.html,orders.html,register.html
user_center
-index:edit.html,index.html,info.html
-orders:edit.html,index.html,info.html,datail.html,logistic.html
-product:add.html,edit.html,index.html,info.html
-requests:add.html,edit.html,index.html,info.html
base.html
manage.py
实现浏览:
源码打包:
链接:https://pan.baidu.com/s/1IqtkTZ6pt_Pc_kD8HY6hLg?pwd=4396
提取码:4396
文章标题:数据库大作业-Python Django开发购物网站完整流程
文章链接:https://aiwin.fun/index.php/archives/1322/
最后编辑:2024 年 1 月 4 日 17:05 By Aiwin
许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
想想你的文章写的特别好