学习过程:
大家还记得软件开发的流程,需求分许书出来后。这时候程序员可以设计数据库了,美工可以设计界面了。根据需求我们设计以下的数据库。当然不同的程序员可能对同一需求设计出不同的数据库,数据库设计尽量符合三大范式,并且利于系统的开发和升级就可以了,大家可以参考一下我的数据库的设计,往后的系统开发都是基于这个数据库的。希望大家也先设计和我一样的数据库。
表说明如下:
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;