项目github:https://github.com/ktsrkw/sjutfleamarket.net
一、需求分析
- 用户可凭借账号密码登录(注册时强制使用邮箱注册,注册成功后可设置用户名)
- 用户可设置性别、出生日期、联系方式等基本信息,用户有唯一标识id
- 一个用户可发布多条商品信息
- 商品必须有商品名称、商品类别、商品价格和商品状态,可以有商品描述、商品图片等,商品有唯一标识id
- 商品发布要记录发布时间信息
二、画ER图
三、ER图转化为实体模式
- 用户user(用户id、用户名username、登录密码password、出生日期birthday、学校university、邮箱email、电话tele、其他联系方式oci、性别gender)
- 商品goods(商品id、用户id、发布时间deliveryTime、商品名称title、商品描述description、商品类别category、商品原价originalPrice、商品价格price、商品状态status)
- 图片picture(图片地址url、商品id)
四、数据库的实施
-- 创建项目数据库
create database sjutfleamarket;
use sjutfleamarket;
-- 创建用户表
create table `user`(
-- 主键id无符号自增
`userid` int(7) unsigned auto_increment,
`username` varchar(20) not null,
`password` varchar(50) not null,
`birthday` datetime datetime not null default '1900-01-01 00:00:00',
`university` varchar(30),
`email` varchar(50) not null,
`tele` varchar(20),
`oci` varchar(200),
primary key(`userid`)
)engine=InnoDB default charset=utf8;
-- 创建商品表
create table `goods`(
-- 主键id无符号自增
`goodsid` int(8) unsigned auto_increment,
-- 外键userid
`userid` int(7) unsigned,
-- 联系属性
`deliveryTime` datetime,
`title` varchar(30) not null,
`description` varchar(500),
-- 分类:
-- 学习用品
-- 交通工具
-- 生活日用品
-- 衣物
-- 电子产品
-- 其他
`category` varchar(10) not null,
`originalPrice` float not null,
`price` float not null,
-- 状态:0为下架,1为未下架
`status` tinyint(1) not null,
primary key(`goodsid`),
foreign key(`userid`) references `user`(`userid`)
)engine=InnoDB default charset=utf8;
-- 为user表添加性别字段
-- 性别:男、女、保密
alter table `user` add `gender` varchar(5);
-- 创建图片表
create table `images`(
`imgurl` varchar(150),
`goodsid` int(8) unsigned,
primary key(`imgurl`),
foreign key(`goodsid`) references `goods`(`goodsid`)
)engine=InnoDB default charset=utf8;