说明:这是一个数据库课程设计实战项目(附带代码+文档+视频讲解),如需代码+文档+视频讲解可以直接到文章最后获取。
项目背景
疫情期间实体经济收到打击,实体药店经营困难,医院也面临着疫情患者的压力运转着,这种情况下更需要网上药店的存在,居民可以通过这种途径减少外出,降低自己被感染的风险,虽然目前我国抗疫形势一片大好,但网上药店这种方式的基础医疗,可以适应各种国内情况,尤其是像这种社会性疾病发生的时候,可以极大的降低人员流动,分摊相关机构的压力,满足居民的日常需求。
即便国内疫情形势并不严峻,网上药店也有其存在的必要性,依托于快递行业的蓬勃发展,这势必在未来会成为实体药店的良性竞争对手,网上药店有着经营成本低、管理容易等优点,依托快递行业,网上药店可以弥补实体药店覆盖范围有限的缺点,保障地区的医疗建设。
本项目着力于解决居民购买日常药物的需求,提高地区基础医疗建设而开展。
现状分析
市场现状
这几年随着大数据和互联网医疗的快速发展,其发展前景较大。在新冠肺炎疫情的影响下,线上医药用品被大量抢购。医药电商迎来发展机遇。
疫情对线上药店的影响如下:
(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