数据库大作业-Python Django开发购物网站完整流程

13 分钟

前言

一、需求分析

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
~  ~  The   End  ~  ~


 赏 
承蒙厚爱,倍感珍贵,我会继续努力哒!
logo图像
tips
(*) 4 + 5 =
本文共 1 条评论。您也快来参与吧!
    10月1日 浙江省舟山市 发自Windows 10 回复

    想想你的文章写的特别好