提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
提示:这里可以添加本文要记录的大概内容:
数据库项目开发,要经历需求饭呢西,概念数据,逻辑设计,物理设计,功能设计等几个阶段,学习数据库系统理论时,结合了项目的开发,可能做的很菜,但是也写篇博客总结一下。
提示:以下是本篇文章正文内容,下面案例可供参考
一、需求分析
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 |
非空 |
|
||
修改时间 |
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