数据库导论 Project1 Report

数据库导论 Project1 报告

杜逸闲 17300240036

概况

本项目是为复旦大学内部使用而设计的失物招领平台。用户在使用复旦大学邮箱注册并登录以后可以发布失物招领和寻物启事;在未登录情况下也可以对已发布的寻物启事(失物招领)进行搜索和筛选。同时本项目对手机端进行了适配,可以满足主流的移动端使用需求。

本项目使用HTML配合Java Script语言以网页形式制作前端,服务器端(后端)使用PHP语言,数据库系统使用Mysql.

功能简述

注册 & 登录 & 找回密码

用户输入昵称、复旦邮箱、密码、确认密码以及邮箱验证码后可以注册;使用昵称和密码可以登录;使用邮箱可以更换新的密码。

用户在登录后可以发布或撤销寻物启事和失物招领,并且可以看到所有发布人的联系方式(未登录状态下只能看到允许游客查看的联系方式)。

发布

用户在登录后点击页面下方的发布,即可发布寻物启事或失物招领。

发布寻物启事时可以对丢失的物品作文字简述,上传图片,选择物品种类,如一卡通、身份证、钥匙、钱包、书籍笔记、雨伞等,和丢失地点,如教学楼、运动场、文娱场所、江湾校区、张江校区、枫林校区等。当然也可以选择丢失的时间,提供自己的联系方式(可选择是否向未登录用户展示),和答谢方式等。

失物招领除不能填写答谢方式外,和寻物启事功能大致相同。

撤销

用户在登陆后点击页面右下角的个人 -> 发布管理,可以撤销自己发布的帖子。

在个人页面也可以撤销登陆信息。

搜索 & 筛选

在首页(可通过点击页面左下角进入)会展示日期最近(最早一年内)的数个帖子的照片、时间、物品种类和地点,点击后会显示包括文字描述在内的所有信息。用户同时可以对帖子进行搜索和筛选(无需登录)。用户对物品的简介进行文本搜索,并对物品的时间、种类和地点进行筛选。筛选时间可以选择一天、三天、一周、两周、一个月和两个月内。

数据库设计

关系结构

用户

users(studentid,email,nickname,password,time)users(\underline{studentid},\underset{\sim\sim\sim\sim\sim}{email}, nickname, password, time)

本表用于保存用户信息,其中studentid为学号(或复旦邮箱@前的字符串);email为复旦邮箱;nickname为用户昵称;password为用户密码;time为用户注册时间。

注册

regist(email,code)regist(\underline{email}, code)

本表用于存放注册时生成的验证码,其中email为复旦邮箱;code为注册用验证码。

帖子

posts(postid,studentid,description,imgsrc,time,contact,showcontact,isfind,reward,item,place)posts(\underline{postid},\underline{\underset{\sim\sim\sim\sim\sim\sim\sim\sim}{studentid}}, description, imgsrc, time, contact, showcontact, isfind, reward, item, place)

本表用于保存物品信息,其中postid为自增主键;studentid为发布者的学号;descreption为文字描述;imgsrc为物品照片在本地的路径;time为物品丢失时间;contact为发布者联系方式;isfind表示该物品是否物归原主(若已经物归原主则不会在首页显示);reward为寻物启事的奖励;itme为物品种类;place为丢失场所。

找回密码

getbackpassword(email,time,code)getbackpassword(\underline{\underset{\sim\sim\sim\sim\sim}{email}}, time, code)

本表用于存放找回密码时的验证码,其中email为用户邮箱;time为验证码发送的时间(因为验证码只在30分钟内有效);code为验证码。

ER图

数据库导论 Project1 Report

技术难点

  1. HTML, Java Script, CSS, PHP语言的学习。
  2. 数据库设计时users, regist, posts三个表的关系处理。