学习过程:
大家还记得软件开发的流程,需求分许书出来后。这时候程序员可以设计数据库了,美工可以设计界面了。根据需求我们设计以下的数据库。当然不同的程序员可能对同一需求设计出不同的数据库,数据库设计尽量符合三大范式,并且利于系统的开发和升级就可以了,大家可以参考一下我的数据库的设计,往后的系统开发都是基于这个数据库的。希望大家也先设计和我一样的数据库。
表说明如下:
1、管理员表
表名 | tb_manager |
|
字段名 | 数据类型 | 备注 |
manager_id | int(10) | 管理员Id,主键 |
login_name | varchar(100) | 登录名 |
passwd | varchar(100) | 密码 |
2、用户表
表名 | member |
|
字段名 | 数据类型 | 备注 |
member_id | int(10) | 用户Id,主键 |
login_name | varchar(100) | 用户帐号 |
passwd | varchar(100) | 密码 |
real_name | varchar(200) | 真实姓名 |
addr | varchar(500) | 地址 |
member_email | varchar(200) | 邮箱 |
phone | varchar(20) | 联系电话 |
postcode | varchar(15) | 邮政编码 |
Head | Varchar(100) | 用户头像 |
3、商品类别表
表名 | goods_types |
|
字段名 | 数据类型 | 备注 |
type_id | int(10) | 商品类别Id,主键 |
type_name | varchar(100) | 类别名称 |
4、商品信息表
表名 | goods |
|
字段名 | 数据类型 | 备注 |
goods_id | int(10) | 商品Id,主键 |
type_id | int(10) | 商品类别Id |
goods_name | varchar(100) | 商品名称 |
cash | decimal(9,2) | 商品价格 |
infos | varchar(500) | 商品信息 |
pic | varchar(100) | 商品图片 |
nums | int | 商品数量 |
5、订单表
表名 | orders |
|
字段名 | 数据类型 | 备注 |
order_id | int(10) | 订单Id,主键 |
member_id | int(10) | 用户Id |
order_time | datetime | 下单时间 |
addr | varchar(500) | 地址 |
real_name | varchar(500) | 姓名 |
phone | varchar(100) | 联系电话 |
countcash | decimal(9,2) | 订单额 |
status | int | 订单状态 1--为每处理,2--已查看,3--已发送,4--交易成功,5--交易失败 |
6、订单详情表
表名 | order_detail |
|
字段名 | 数据类型 | 备注 |
detail_id | int(10) | 详情Id,主键 |
order_id | int(10) | 订单Id |
goods_id | int(10) | 商品Id |
cash | decimal(9,2) | 商品价格 |
nums | int(10) | 商品数量 |
表模型如下:
大家可以根据上面的说明,先在powerdesigner设计表的模型,然后生成sql代码,这里我们先使用mysql数据库进行开发。
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure `goods`
-- ----------------------------
DROP TABLE IF EXISTS `goods`;
CREATE TABLE `goods` (
`nums` int(11) DEFAULT NULL,
`pic` varchar(100) DEFAULT NULL,
`infos` varchar(500) DEFAULT NULL,
`cash` decimal(9,2) DEFAULT NULL,
`goods_name` varchar(100) DEFAULT NULL,
`type_id` int(10) DEFAULT NULL,
`goods_id` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`goods_id`)
) ENGINE=InnoDB AUTO_INCREMENT=196 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `goods_types`;
CREATE TABLE `goods_types` (
`type_name` varchar(100) DEFAULT NULL,
`type_id` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`type_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `member`;
CREATE TABLE `member` (
`head` varchar(100) DEFAULT NULL,
`postcode` varchar(15) DEFAULT NULL,
`phone` varchar(20) DEFAULT NULL,
`member_email` varchar(200) DEFAULT NULL,
`addr` varchar(500) DEFAULT NULL,
`real_name` varchar(200) DEFAULT NULL,
`passwd` varchar(100) DEFAULT NULL,
`login_name` varchar(100) DEFAULT NULL,
`member_id` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`member_id`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `order_detail`;
CREATE TABLE `order_detail` (
`nums` int(10) NOT NULL,
`cash` decimal(9,2) NOT NULL,
`goods_id` int(10) DEFAULT NULL,
`order_id` int(10) DEFAULT NULL,
`detail_id` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`detail_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `orders`;
CREATE TABLE `orders` (
`status` int(11) DEFAULT NULL,
`countcash` decimal(9,2) DEFAULT NULL,
`phone` varchar(100) DEFAULT NULL,
`real_name` varchar(500) DEFAULT NULL,
`addr` varchar(500) DEFAULT NULL,
`order_time` varchar(100) DEFAULT NULL,
`member_id` int(10) DEFAULT NULL,
`order_id` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`order_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `tb_manager`;
CREATE TABLE `tb_manager` (
`passwd` varchar(100) DEFAULT NULL,
`login_name` varchar(100) DEFAULT NULL,
`manager_id` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`manager_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;