SJUTFleaMarket项目开发一:数据库

项目github:https://github.com/ktsrkw/sjutfleamarket.net

一、需求分析

  1. 用户可凭借账号密码登录(注册时强制使用邮箱注册,注册成功后可设置用户名)
  2. 用户可设置性别、出生日期、联系方式等基本信息,用户有唯一标识id
  3. 一个用户可发布多条商品信息
  4. 商品必须有商品名称、商品类别、商品价格和商品状态,可以有商品描述、商品图片等,商品有唯一标识id
  5. 商品发布要记录发布时间信息

二、画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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值