szuexp数据库系统与设计——一个奢侈品租赁平台网站

     

              

课程名称: 系统设计与数据库系统              

实验序号:  实验4                           

实验名称: System Design                       

    号:             2020124041                     

姓名:         汤梓昊                             

实验完成日期: 21  01   08 

一、实验目的:

  1. 了解数据库设计;

2、掌握存储过程、函数、触发器的实现。

二、实验要求:

1、安装相关软件并浏览软件自带的帮助文件和功能菜单,

2、掌握PHP构建网页以及连接数据库的方法。

3、掌握phpmyadmin创建数据库与数据表的方法;

4、了解mysql的命令以及与php衔接的语句

5、掌握存储过程、函数的实现

6、掌握触发器的实现;

三、实验设备:

计算机、数据库管理系统如php,mysql 等软件。

四、实验内容

  1. 按要求完成individual project的数据库设计,MySQL Implementation 和Interface,可以按照自己的思路拓展功能。

本实验拥有前台(供客户使用)和后台(供工作人员使用)两大界面,其中:

  1. 前台(img.php)功能包括:
  1. 商品展示页面:功能比较完善,界面美观,本实验亮点之一
  2. 对不同产商的商品进行分类筛选功能
  3. 租赁奢侈品的功能
  4. 后台(b_management.php)功能包括
  1. 所有用户情况的展示
  2. 用户消费总额以及租期长度的展示
  3. 对最佳用户进行排序
  4. 向前台上架商品

数据库的构建:

本次实验一共创建了5张表:

  1. customers 表记录了所有顾客的信息

  1. products 表记录了所有产品的信息

  1. rent 表记录了用户租赁的记录

  1. bagurl表存放了所有商品的图片url

  1. cus_rent_return 将会在trigger中被使用到结构和rent表一样

due是距离截止日期的天数

  1. 附上相关问题的解决方案,以及运行结果, 运行屏幕截图。
  1. 商品展示页面

我们提供了两种不同的界面供用户选择

第一个页面鼠标悬浮的情况下提供了更多细节

第二个页面时橱窗展示

我们可以左右滑动橱窗看到更多内容

商品展示页面——实现代码

由于本实验重点不是css,因此只会提及使用php进行的商品的渲染

       首先页面结构代码如下

整个页面用grid格子包裹,其中每一个小卡片都是一个grid-item

我们首先从products表中获取所有需要渲染的数据

再使用mysqli_fetch_array方法获取对应信息

继续从bagurls中拿商品图片的url

接下来开始渲染

每一个小卡片都有自己的价格

自己的颜色

自己的图片,名字,生产商

橱窗的图片

至此,我们的界面就渲染完成了

  1. 筛选指定的产商(对应要求第一点)

由于我认为我的前端的这个功能并不需要procedure实现,我使用了另一种方法,当然为了完成作业,我也写了一个procedure,并且使用后台的第四个界面进行展示,如下

但是在这里我将重点讲解游标的使用以及数据解析以及渲染的方法,在后文中会有很多利用到这个的方法,后面就不会详细解释了

首先创建procedure,

创建接收Name,Color,Manufacturer的三个变量v_email,v_color,v_manu

定义not found handler 找不到时方便退出循环

使用mu_cursor游标不断的将结果fetch进入v_emali,v_color,v_manu

最后使用concat将所有的结果拼接起来,用分号分隔

使用php调用这段代码 call myproc

并且进行解析和渲染

我们使用token,将字符串一个一个的分割(strtok)出来,渲染的时候注意数学逻辑,控制好每一行即可

结果

我的另一种方法的实现

首先前端拥有一个表单可以给我们选择提交

表单的代码

接下来重写sql语句,重新定义渲染条件

重新定义条件之后执行渲染

我们以选择LV和prada为例子

整个界面只剩下他们了

  1. 租赁奢侈品的功能(对应要求第四点第一部分)

点击rent it now

输入名字,地址,租期到的日期

这里还设置了检查(对应要求第六点)

当然也有相应的价格计算

租赁商品——代码实现

创建存储过程rent_dialog,向表中插入数据

后台查看

  1. 所有用户情况的展示

注意到我们的表格是可以展开的噢

用户情况展示——代码实现

这里和渲染商品的原理是差不多

都是先从数据库拿到数据

然后再按照行解析

最后渲染

  1. RentalCost的展示(对应要求3

点击用户表对应的rental_cost,跳转到该页面

Rentalcost——代码展示

存储过程:rental_cost和筛选厂商类似

在php中调用

  1. 最佳用户(对应要求2

最佳用户——代码实现

存储过程best_customer

关键语句是select

Php调用

  1. 增加新的商品(对应要求4的后半部分)

代码实现:

存储程序add_bag

需要给products插入商品,给bagurls插入图片

Php中使用表单传递数据

调用存储程序

  1. 到期提醒以及自动延期(对应要求6

若用户到期,我们将在前端输出信息,并且在后台自动增加新的租用记录(从当前日期到七天之后)并且在前端提示新的到期时间

本来13号到期

到期

归还日期变为20号

前台变为20

代码实现:

创建trigger,在插入rent后,在cur_rent_date中插入数据以便显示到期时间还有多久

创建event,用来进行日期衰减,每隔一秒等于过了一天

创建trigger检查是否到期,即due<0时,在rent中插入新的数据

Php 调用

3)(可选)录一小段视频,3分钟左右,对自己的亮点进行解说展示。

五.问题分析(碰到什么问题,如何解决)

六.实验心得

整体实验下来使用了很多procedure

对于动态渲染的掌握有了很大的提升

对于数据库的创建规则有了更多的了解和技巧

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值