基于MYSQL的互联网药品交易系统数据库设计项目实战

2023-10-29

说明:这是一个数据库课程设计实战项目(附带代码+文档+视频讲解),如需代码+文档+视频讲解可以直接到文章最后获取。

项目背景

疫情期间实体经济收到打击,实体药店经营困难,医院也面临着疫情患者的压力运转着,这种情况下更需要网上药店的存在,居民可以通过这种途径减少外出,降低自己被感染的风险,虽然目前我国抗疫形势一片大好,但网上药店这种方式的基础医疗,可以适应各种国内情况,尤其是像这种社会性疾病发生的时候,可以极大的降低人员流动,分摊相关机构的压力,满足居民的日常需求。

即便国内疫情形势并不严峻,网上药店也有其存在的必要性,依托于快递行业的蓬勃发展,这势必在未来会成为实体药店的良性竞争对手,网上药店有着经营成本低、管理容易等优点,依托快递行业,网上药店可以弥补实体药店覆盖范围有限的缺点,保障地区的医疗建设。

本项目着力于解决居民购买日常药物的需求,提高地区基础医疗建设而开展。

现状分析

市场现状

这几年随着大数据和互联网医疗的快速发展,其发展前景较大。在新冠肺炎疫情的影响下,线上医药用品被大量抢购。医药电商迎来发展机遇。

疫情对线上药店的影响如下:

(1) 提高全民认知度。医药电商一直发展迟缓,受限于国家政策、线上线下联动和医药产业链长等诸多痛点,而经过此次疫情,大量宅家的消费者开始关注医药电商。

(2) 求医咨询。线上购药虽不能让病人面对面现场咨询,但是在疫情现状不明朗的情况下,医药电商拓宽线上求医咨询的业务,提高了病人对线上购药的体验。

(3) 政策的调整。医药行业是一个国家高度监管的行业,此次疫情可能让国家在医药电商的相关政策方面给予一定支持。目前医药电商政策趋势逐渐明朗。

(4) “医+药”的磨合。医药电商服务平台能够提供种类多样、实用性强、覆盖范围广的医药产品服务是其发展的核心动力。以药品销售为基础,增加健康咨询、就医指导服务等等特色业务,还能进行线下线上相融合,多方合作。

现有平台现状

系统设计

本系统的总目标是为需要买药的消费者提供安全可靠、快速便捷的网上购药平台。在阅读互联网药品交易服务现状的相关文献后,了解到我国在互联网药品交易服务过程中存在买家没见到实物,难免不放心、运输途中需要时间,不能应急等问题。因此,本系统围绕着总目标、针对现存问题、结合经营者和消费者的具体需求,经过概念结构设计、逻辑结构设计、物理结构设计等过程,即数据库系统设计,E-R 图设计,数据表的设计,最终完成了互联网药品交易系统的设计。

功能需求分析

买方需求分析  

卖方需求分析

 

系统功能模块图

设计的系统功能模块图

互联网药品交易系统(设计图) 

实现的系统功能模块图

互联网药品交易系统(简化版 实现功能版) 

实体集

用户表用户编号、用户名、用户密码、用户头像路径、用户真实姓名、用户地址、邮编、联系电话、电子邮箱 、身份证。

医师表医师编号、医师姓名、医师用户密码、医师资格证信息、身份证。

客服表客服编号、所属门店的编号、真实姓名、昵称、密码、客服头像路径、联系电话、身份证。

优惠券优惠券编号、优惠券使用规则描述、开始日期、结束日期、优惠券使用情况。

商品采购表采购编号、采购的门店编号、采购数量、商品编号、商品种类、采购日期。

广告信息表广告编号、投放时间、每个广告对应的图片路径、产品信息描述。

店面信息表门店编号、门店名称、门店地址、门店邮编、门店热线、门店照片路径、门店营业执照信息描述、店长。

物流信息表物流订单号、商品编号、用户编号、商家编号、发货地址、收货地址、物流信息最近更新时间、最近更新时商品所在位置,是否送到,是否收货。

配送门店信息表门店编号、门店名称、门店地址、可配送范围

医师咨询服务表:医师咨询编号、咨询时间、用户编号、医师编号、咨询服务内容描述。

售后服务表售后服务编号、用户编号、客服编号、服务时间、售后服务内容描述。

商品详细表商品编号、商品名、商品描述、商品单价、销售数量、上架日期、库存量。

商品类型表商品类型编号、商品类型名。

订单详细表订单编号、用户编号、商品编号、商品数量、订单日期、订单状态 、优惠券编号。

商品评价表评价编号、用户编号、商品编号、评论时间、评论内容、评论星级。

购物车列表购物车编号、商品编号、商品的规格配套对应的编号、每套商品对应的价格、每套商品对应的图片路径。

收藏列表收藏编号、商品编号、用户编号。

商品的购物车商品规格表具体商品规格对应的编号,具体规格属性名,具体规格的属性值。

商品详细页的轮播图表轮播图编号、商品编号、轮播图片的路径

商品详细页的商品特征特征编号、商品编号、商品特征的图片路径,商品特征的描述。

商品详细页的商品参数参数编号、商品编号、商品的参数名、商品的参数值。

商品详细页的商品服务内容服务内容编号、商品编号、服务的标题、服务的内容。

商品详细页的Q&A问答的编号、商品编号、客户可能存在的问题、商品的回答。

备注:

(1)其中标红的为主码

(2)关于以上一些表

①商品详细页的轮播图表:因为一个商品有多张轮播图,所以这里的商品编号不能作为主键。即数据表中会出现多个同样的商品序号,对应不同的轮播图路径。

②商品详细页的商品特征:因为一个商品有多个特征,所以这里的商品序号不能作为主键。即数据表中会出现多个同样的商品序号,对应不同的特征描述。

③商品详细页的商品参数:因为一个商品有多个参数,所以这里的商品序号不能作为主键。即数据表中会出现多个同样的商品序号,对应不同的参数名和参数值。

④商品详细页的商品服务内容:因为一个商品有多个服务,所以这里的商品序号不能作为主键。 即数据表中会出现多个同样的商品序号,对应不同的服务。

⑤商品详细页的 Q&A:因为一个商品有多个问答,所以这里的商品序号不能作为主键。 即数据表中会出现多个同样的商品序号,对应不同的问答。

⑥售后服务表:一个用户可能接受了多个售后服务、一个客服也会为多位客户提供售后服务,用户编号、客服编号都不能作为主码。

联系集

用户表——订单详细表

用户表——商品评价表

用户表——购物车列表

用户表——收藏列表

用户表——售后服务表

用户表——医师咨询服务表

用户表——物流信息表

商品详细表——商品详细页的轮播图表

商品详细表——商品详细页的商品特征

商品详细表——商品详细页的商品参数

商品详细表——商品详细页的商品服务内容

商品详细表——商品详细页的 Q&A

商品详细表——商品类型表

商品详细表——订单详细表

商品详细表——商品评价表

商品详细表——购物车列表

商品详细表——收藏列表

商品详细表——物流信息表

购物车列表——商品的购物车商品规格表

门店信息表——配送门店信息表

门店信息表——广告信息表

门店信息表——物流信息表

数据库结构设计

概念设计:E-R图

部分E-R图

 

 

完整ER图

数据库表设计

购物车列表 (cart):

商品详细页的轮播图表 (goods_banner):

 

用户订单表(m_orders):

 

商品详细表(medicine_details):

 

USER表:

 

医师表 (doc_info):

 

客服表 (kf_info):

 

优惠券 (discount_table):

 

 药品采购表 (medicine_buying_details):

广告信息表 (ads_table):

 

门店信息表 (store_info):

 

物流信息表 (package_info):

 

配送门店信息表 (express_store_infor):

 

医师咨询服务表 (consulting_service_table):

 

售后服务表 (after-sale_service_table):

 

商品类型表(goods_class):

 

订单详细表 (orders_details):

 

收藏列表 (star_table):

 

商品的购物车商品规格表 (cart_detail):

 

商品详细页的商品特征(goods_feature):

 

商品详细页的商品参数(goods_para):

 

 

商品详细页的商品服务内容 (goods_serve):

 

商品详细页的 Q&A (goods_qa):

 

商品评价表 (goods_comment):

 

数据库程序设计与编码实现

数据库创建

数据表创建

创建用户表user:

 

插入演示数据:

 

 

查询数据:

 

药品详细表(medicine_details):

 

插入演示数据

 

查询数据:

 

创建购物车表(cart):

 

 

插入演示数据:

 

查询数据:

 

创建商品轮播图表(goods_banner):

 

 

插入演示数据:

 

查询数据:

 

创建订单表(m_oders):

 

 

插入演示数据:

 

查询数据:

 

索引创建

索引是创建在表上的,是对数据库中一列或者多列的值进行排序的一种结构。索引可以提高查询的速度。互联网药品交易系统需要查询交易的信息,这就需要在某些特定字段上建立索引,以便提高查询速度。

在user表上建立索引

药品系统中需要按照uname字段查询用户信息。

在medicine_details表上建立索引

在药品系统中需要通过药品名称和药品价格查询药品信息,因此需要在这两个字段上创建索引。

 

在m_oders表上建立索引

药品系统需要通过user_id字段、medicine_id字段和medicine_num字段查询药品订单信息,因此可以在这3个字段上创建索引。

视图创建

在药品系统中,如果直接查询m_oders表,显示信息会不全,显示不了药品名称等。为了以后查询方便,可以建立一个视图m_oders_view。这个视图显示药品名称、药品价格、药品销售数量、用户ID和订单日期。

 

 查询视图:

触发器创建

触发器由INSERT、UPDATE和DELETE等事件来触发某种特定的操作。满足触发器的触发条件时,数据库系统就会执行触发器中定义的程序语句。这样做可以保证某些操作之间的一致性。为了使药品系统的数据更新更加快速和合理,可以在数据库中设计几个触发器。

创建UPDATE触发器

在设计表时,user表和m_oders表的user_id字段的值是一样的。如果user表中的user_id字段的值更新了,那么m_oders表中的user_id字段的值也必须同时更新。这可以通过一个UPDATE触发器来实现。创建UPDATE触发器update_user_id的SQL代码如下: 

其中,NEW.user_id表示user表中更新的记录的user_id值。

创建DELETE触发器

如果从user表中删除一个用户的信息,那么这个用户在cart表中的信息也必须同时删除。这也可以通过触发器来实现。在user表上创建delete_user触发器,只要执行DELETE操作,就删除cart表中相应的记录。创建delete_user触发器的SQL语句如下:

其中,OLD.user_id表示新删除的记录的user_id值。 

 本次机器学习项目实战所需的资料,项目资源如下:

项目说明:
链接:https://pan.baidu.com/s/1c6mQ_1YaDINFEttQymp2UQ 
提取码:thgk

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于MYSQL的互联网药品交易系统数据库设计项目实战 的相关文章

  • 如何在SQL中编写连接查询[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 问题 给定 Employee 和 AnnualReviews 表 编写一个查询以返回所有从未接受过按 HireDate 排序的评论的员
  • 我的表是什么 ROW_FORMAT?

    我发现MySQL有多行格式 http dev mysql com doc refman 5 1 en data size html 并且可以指定或更改它 另外 默认的 ROW FORMAT 显然随着 MySQL 版本的变化而改变 这是可以理
  • 减少每日状态表以仅包含状态更改

    我有一个包含 10 万以上用户的大型每日状态表 5 7 亿行 目前它位于 MySQL 或 CSV 中 该表包含三列 user id status 和 date 理想情况下 我希望将表缩减为一个新表 其中包含每个状态期间的 user id s
  • 跨数据库管理系统检查字符串是否为数字的方法

    好的 我有这个字段 code varchar 255 它包含我们导出例程中使用的一些值 例如 DB84 DB34 3567 3568 我需要仅选择自动生成的 全数字 字段 WHERE is numeric table code is num
  • MySql - 自动完成

    我正在创建一个 Ajax 自动完成应用程序 并且想知道是否有一个 SQL 查询可以用于此目的 例如 如果有人键入 p 我想检索所有以 p 开头的单词 如果他们添加 e 检索所有以 pe 开头的单词 并继续这样 有人提出了下面的查询 但我认为
  • MYSQL sum() 计算不同的行

    我正在寻求在 SQL 查询中使用 sum 的帮助 SELECT links id count DISTINCT stats id as clicks count DISTINCT conversions id as conversions
  • 连接到 mysql 服务器(localhost)非常慢

    实际上有点复杂 摘要 与数据库的连接非常慢 页面渲染大约需要 10 秒 但页面上的最后一条语句是一个回显 当页面在 Firefox 中加载时我可以看到它的输出 IE 是相同的 在谷歌浏览器中 只有在加载完成后输出才可见 不同浏览器的加载时间
  • 是否可以在MySQL UDF中的IF条件中声明游标

    我可以在 if 语句中声明游标吗 如果可能的话我怎样才能做到 因为我刚刚做了这样的光标 CREATE FUNCTION fn test ProductID BIGINT 20 RETURNS DECIMAL 10 2 BEGIN DECLA
  • 如何防止大型 MySQL 导入的连接超时

    在开发过程中 我们的本地 WAMP 服务器如何从测试服务器获取最新数据 即生成数据库转储 然后使用 source 命令上传该转储以加载 sql 文件 最近 在导入的最后 我们收到了有关 old 变量的错误 这些变量在更改之前存储了原始设置
  • 在 MySQL 5.6 中重置 ROOT 密码

    我一直在关注这些说明 http dev mysql com doc refman 5 6 en resetting permissions html用于重置root本地安装的密码MySQL 5 6在 Windows 7 笔记本电脑上 我停止
  • MySQL更改表,添加具有唯一随机值的列

    我有一个表 我添加了一个名为phone 该表还有一个 id 设置为自动增量的主键 如何将随机值插入到电话列中 该值不会重复 以下 UPDATE 语句确实插入了随机值 但并非所有值都是唯一的 另外 我没有被卖掉 我投了phone字段也正确 但
  • 如何解决 MySQL Workbench 上的这些行错误?

    正如您所看到的 我的代码中没有语法错误或类似的错误 你们能帮我吗 我想这只是错误标记机制中的一个小错误 尝试编辑代码或关闭此编辑器并打开一个新编辑器 如果您有重现此问题的步骤列表 您甚至可以创建一个错误报告 http bugs mysql
  • MAMP Python-MySQLdb 问题:调用 Python 文件后 libssl.1.0.0.dylib 的路径发生变化

    我正在尝试使用 python MySQLdb 访问 MAMP 服务器上的 MySQL 数据库 当我最初尝试使用 python sql 调用 Python 文件来访问 MAMP 上的数据库时 我得到了image not found关于错误li
  • MySQL 性能 DELETE 或 UPDATE?

    我有一个超过 10 7 行的 MyISAM 表 向其中添加数据时 我必须在最后更新 10 行 删除它们然后插入新行更快 还是更新这些行更快 应更新的数据不是索引的一部分 索引 数据碎片怎么样 UPDATE到目前为止要快得多 当你UPDATE
  • 在旧版本的 MySQL (<5.5.0) 中模拟 TO_SECONDS()

    出于性能和简单性的原因 我想以秒的形式获取 MySQL 3 x 服务器中 DATETIME 列的内容 或者实际上任何数字类型 我只是想在使用 UNIX TIMESTAMP 时避免所有明显的时区问题 the我表中的日期确实来自不同的区域设置
  • 为什么我在 WinForms 列表框中得到“System.Data.DataRowView”而不是实际值?

    每当我运行代码并尝试查看highscore我在列表框中得到的只是System Data DataRowView 谁能明白为什么吗 Code MySqlConnection myConn new MySqlConnection connStr
  • 选择每组最新的项目[重复]

    这个问题在这里已经有答案了 可能的重复 检索每组中的最后一条记录 https stackoverflow com questions 1313120 retrieving the last record in each group 我有 2
  • pyodbc 无法正确处理 unicode 数据

    我确实使用 pyodbc 成功连接了 MySQL 数据库 并且它可以很好地处理 ascii 编码的数据 但是当我打印使用 unicode utf8 编码的数据时 它引发了错误 UnicodeEncodeError ascii codec c
  • mysql 中 INSERT 语句的计算列

    假设我想要一个表来记录其他表中的日期和列数 或者任何类型的数学 字符串连接等 CREATE TABLE log id INTEGER NOT NULL AUTO INCREMENT date DATETIME NOT NULL count
  • MyBatis 枚举的使用

    我知道以前有人问过这个问题 但我无法根据迄今为止找到的信息实施解决方案 所以也许有人可以向我解释一下 我有一个表 状态 它有两列 id 和 name id是PK 我不想使用 POJO Status 而是使用枚举 我创建了这样一个枚举 如下所

随机推荐

  • C语言实现RAND函数的方法

    C语言使用rand 一个值就可以实现生成一个伪随机数供我们使用 那么rand函数是如何实现的呢 我们自己可不可以编辑出来 其实是可以的 rand作为伪随机数发生器产生的是一个伪随机数 一般的用途能够满足 要想实现这个函数 需要用一个公式 x
  • Springboot使用Thymeleaf模板引擎无法加载css样式等静态资源

    我的项目文件目录如下 在使用thymeleaf模板引擎时访问不到css样式文件如下 其原因是Thymeleaf模板引擎引用文件需要按照规定的写法 如下 需使用th href属性 路径需使用 文件路径 包裹 加上后就可以看见样式了
  • 报表的发布

    各种不同的报表工具 其发布方式是不一样的 现在说说一些报表工具的发布方式 笔者对报表了解不多 可能有些认识上的错误 望大家指明 DevExpress公司出品的报表工具 XtraReport 它的报表设计器就是集成在VS NET集成开发环境中
  • 简单了解JVM 组成以及各部分

    简单介绍JVM各组成部分 图1 JVM组成部分 JVM包含两个子系统和两个组件 两个子系统 类加载子系统 Class loader 和执行引擎 Execution engine 两个组件 运行时数据区 Runtime data area 本
  • leetcode 1233. 删除子文件夹

    1233 删除子文件夹 难度中等142 你是一位系统管理员 手里有一份文件夹列表 folder 你的任务是要删除该列表中的所有 子文件夹 并以 任意顺序 返回剩下的文件夹 如果文件夹 folder i 位于另一个文件夹 folder j 下
  • Java集合框架

    文章目录 一 简介 1 集合框架介绍 2 相关容器介绍 2 1 Set相关 2 2 List相关 2 3 Queue相关 2 4 Map相关 3 集合重点 二 ArrayList分析 1 ArrayList使用 2 ArrayList介绍
  • MMCV/MMDet/MMDet3D 的版本对应

    MMDetection3D version MMDetection version MMSegmentation version MMCV version master mmdet gt 2 24 0 lt 3 0 0 mmseg gt 0
  • [Pytorch系列-65]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 无监督图像生成CycleGan的基本原理

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 121962962 目录 第1章 什么是
  • 图片像素点统计

    最近这几天闲来无事 想起来18年12月末帮别人做了一个编程题 题目就是如何统计一张图片中的气泡数目 以及每个气泡的面积 上面这张图就是案例 里面白色的都是不规则形态的气泡 当拿到这个题目时看一眼就大致有些思路 因为怎么说也是学了数据结构的人
  • PHp 密码验证

    MD5加密 string md5 string str bool raw output false 参数 str 原始字符串 raw output 如果可选的 raw output 被设置为 TRUE 那么 MD5 报文摘要将以16字节长度
  • 纯前端实现地址分词,模糊匹配

    关于地址分词的一点思路 一些主要代码的简要说明 本人的思路是 解析的结果存储在一个类似树状的结构中 就和DOM节点类似 用parent字段指向父级 用children字段指向子级 准备工作 CityModel 类 先构建出一个 CityMo
  • QT程序发布方法

    方法一 首先打开想要发布的程序所在的项目 然后将右下角的Debug换成Release Debug版本的程序非常大 因为有很多调试的信息 接着 按Ctrl R运行一遍 确保自己的程序没有问题 然后到程序的输出文件夹中 一般在项目目录的上一层目
  • 二分法查找之应用

    待定 1 二分法查找的前提 有序 1 二分法查找元素 例题1 287 寻找重复数 给定一个包含 n 1 个整数的数组 nums 其数字都在 1 到 n 之间 包括 1 和 n 可知至少存在一个重复的整数 假设只有一个重复的整数 找出这个重复
  • python opencv去图片水印

    背景 最近有一个需要为图片去水印的需求 于是各种折腾开始 背景了解图片标准 图片使用RGB编码 RGB色彩模式是工业界的一种颜色标准 是通过对红 R 绿 G 蓝 B 三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色 RGB即是代
  • java sort方法详解

    JAVA ARRAYS SORT 方法 static void sort ElementType a 默认为升序排序 static void sort ElementType a int FromIndex int ToIndex 在指定范
  • bash shell 计时运行耗时

    starttime date Y m d H M S ls usr lib endtime date Y m d H M S start seconds date date starttime s end seconds date date
  • WEEX框架(一)框架简介和快速上手体验

    框架简介 Weex 是能够完美兼顾性能与动态性 让移动开发者通过简捷的前端语法写出Native级别的性能体验的框架 并支持iOS 安卓 Web等多端部署 由阿里巴巴研发和维护 对于移动开发者来说 Weex主要解决了频繁发版和多端研发两大痛点
  • Google App Engine技术架构资料大盘点

    一 Google的核心技术 在切入Google App Engine之前 首先会对Google的核心技术和其整体架构进行分析 以帮助大家之后更好地理解Google App Engine的实现 本篇将主要介绍Google的十个核心技术 而且可
  • 跳动的爱心代码--李峋爱心代码(完整源码)

    本文章分为两部分 第一部分为实现效果展示 第二部分是实现跳动爱心源码 关注微信公众号 ClassmateJie 跳动的爱心效果展示 关注微信公众号 ClassmateJie 获取完整源码 回复爱心代码 实现步骤 1 建一个html文件 代码
  • 基于MYSQL的互联网药品交易系统数据库设计项目实战

    说明 这是一个数据库课程设计实战项目 附带代码 文档 视频讲解 如需代码 文档 视频讲解可以直接到文章最后获取 项目背景 疫情期间实体经济收到打击 实体药店经营困难 医院也面临着疫情患者的压力运转着 这种情况下更需要网上药店的存在 居民可以