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