MySQL 建表(这里用到的Navicat软件)
CREATE TABLE IF NOT EXISTS 表名(
id INT UNSIGNED PRIMARY KEY auto_increment COMMENT'主键ID',
is_delete TINYINT NOT null DEFAULT 0 COMMENT'是否删除(0未1已)',
create_date datetime NOT NULL DEFAULT now () COMMENT '创建日期',
modify_date datetime COMMENT '修改日期'
);
-- DDL建表语句
CREATE TABLE IF NOT EXISTS USER(
id INT UNSIGNED PRIMARY KEY auto_increment COMMENT'主键ID',
-- id 字段名 INT UNSIGNED 数据类型 PRIMARY KEY 主键 auto_increment 自增长 COMMENT'主键ID' 注释
username VARCHAR(32) UNIQUE NOT NULL COMMENT'用户名',
-- UNIQUE 唯一约束 NOT NULL 非空约束
password VARCHAR(64) NOT NULL COMMENT '密码(存储密文)',
avatar VARCHAR(64) NOT NULL COMMENT'头像图片名称',
sex char(1) COMMENT '性别',
mobile CHAR(11) COMMENT'手机号码',
id_code CHAR(18) COMMENT '身份证号码',
is_delete TINYINT NOT null DEFAULT 0 COMMENT'是否删除(0未1已)',
create_date datetime NOT NULL DEFAULT now() COMMENT '创建日期',
modify_date datetime COMMENT '修改日期'
)ENGINE = INNODB auto_increment =1 charset = utf8 COMMENT '用户表';
-- 物理删除与逻辑删除
-- 1.物理删除执行DELETE语句,逻辑删除执行UPDATE语句
-- 无限分类的表结构设计
-- id name parent_id level
-- 1 江苏省 null 1
-- 2 南京市 1 2
-- 3 玄武区 2 3
-- 4 扬州市 1 2
-- 5 邗江区 4 3
-- 阿里巴巴开发手册中建议的
CREATE TABLE IF NOT EXISTS 表名(
id INT UNSIGNED PRIMARY KEY auto_increment COMMENT'主键ID',
is_delete TINYINT NOT null DEFAULT 0 COMMENT'是否删除(0未1已)',
create_date datetime NOT NULL DEFAULT now() COMMENT '创建日期',
modify_date datetime COMMENT '修改日期'
);
-- DDL建表语句
-- 用户表
CREATE TABLE IF NOT EXISTS USER(
id INT UNSIGNED PRIMARY KEY auto_increment COMMENT'主键ID',
-- id 字段名 INT UNSIGNED 数据类型 PRIMARY KEY 主键 auto_increment 自增长 COMMENT'主键ID' 注释
username VARCHAR(32) UNIQUE NOT NULL COMMENT'用户名',
-- UNIQUE 唯一约束 NOT NULL 非空约束
password VARCHAR(64) NOT NULL COMMENT '密码(存储密文)',
avatar VARCHAR(64) NOT NULL COMMENT'头像图片名称',
sex char(1) COMMENT '性别',
mobile CHAR(11) COMMENT'手机号码',
id_code CHAR(18) COMMENT '身份证号码',
is_delete TINYINT NOT null DEFAULT 0 COMMENT'是否删除(0未1已)',
create_date datetime NOT NULL DEFAULT now() COMMENT '创建日期',
modify_date datetime COMMENT '修改日期'
)ENGINE = INNODB auto_increment =1 charset = utf8 COMMENT '用户表';
-- 省市区表
CREATE TABLE IF NOT EXISTS area(
id INT UNSIGNED PRIMARY KEY auto_increment COMMENT'主键ID',
name VARCHAR(32) NOT NULL COMMENT'省市区行政名称',
parent_id INT UNSIGNED COMMENT'父类ID',
level TINYINT COMMENT '等级',
is_delete TINYINT NOT null DEFAULT 0 COMMENT'是否删除(0未1已)',
create_date datetime NOT NULL DEFAULT now() COMMENT '创建日期',
modify_date datetime COMMENT '修改日期'
)ENGINE = INNODB auto_increment =1 charset = utf8 COMMENT '省市区表';
-- 收货地址表
CREATE TABLE IF NOT EXISTS address(
id INT UNSIGNED PRIMARY KEY auto_increment COMMENT'主键ID',
user_id INT UNSIGNED COMMENT'关联用户ID',
province_id INT UNSIGNED COMMENT'关联省ID',
city_id INT UNSIGNED COMMENT'关联市ID',
area_id INT UNSIGNED COMMENT'关联区ID',
province VARCHAR(32) COMMENT'冗余省的名称',
city VARCHAR(32) COMMENT'冗余市的名称',
area VARCHAR(32) COMMENT'冗余区的名称',
remark VARCHAR(32) COMMENT'备注',
is_default TINYINT COMMENT'是否默认地址',
is_delete TINYINT NOT null DEFAULT 0 COMMENT'是否删除(0未1已)',
create_date datetime NOT NULL DEFAULT now() COMMENT '创建日期',
modify_date datetime COMMENT '修改日期'
)ENGINE = INNODB auto_increment =1 charset = utf8 COMMENT '收货地址表';
-- 商品分类表
CREATE TABLE IF NOT EXISTS category(
id INT UNSIGNED PRIMARY KEY auto_increment COMMENT'主键ID',
name VARCHAR(32) NOT NULL COMMENT'分类名称',
parent_id INT UNSIGNED COMMENT'父类ID',
level TINYINT COMMENT '等级',
is_delete TINYINT NOT null DEFAULT 0 COMMENT'是否删除(0未1已)',
create_date datetime NOT NULL DEFAULT now() COMMENT '创建日期',
modify_date datetime COMMENT '修改日期'
)ENGINE = INNODB auto_increment =1 charset = utf8 COMMENT '商品分类表';
-- 商品表
CREATE TABLE IF NOT EXISTS product(
id INT UNSIGNED PRIMARY KEY auto_increment COMMENT'主键ID',
name VARCHAR(32) UNIQUE NOT NULL COMMENT'商品名称',
description VARCHAR(32) COMMENT'商品名称',
price DECIMAL(10,2) NOT NULL COMMENT'商品价格',
stock INT UNSIGNED NOT null DEFAULT 0 COMMENT'商品库存',
image VARCHAR(64) NOT NULL DEFAULT 'default_product.jpg' COMMENT '商品图片',
state TINYINT NOT NULL DEFAULT 0 COMMENT '商品状态',
is_delete TINYINT NOT null DEFAULT 0 COMMENT'是否删除(0未1已)',
create_date datetime NOT NULL DEFAULT now() COMMENT '创建日期',
modify_date datetime COMMENT '修改日期'
)ENGINE = INNODB auto_increment =1 charset = utf8 COMMENT '商品表';
-- 购物车表
CREATE TABLE IF NOT EXISTS cart(
id INT UNSIGNED PRIMARY KEY auto_increment COMMENT'主键ID',
user_id INT UNSIGNED COMMENT '关联用户ID',
product_id INT UNSIGNED COMMENT '关联商品ID',
product_name VARCHAR(32) COMMENT'冗余商品名称',
product_price DECIMAL (10,2) COMMENT'冗余商品价格',
image VARCHAR(64) NOT NULL DEFAULT 'default_product.jpg' COMMENT '冗余商品图片',
quantity INT UNSIGNED COMMENT '数量',
state TINYINT NOT NULL DEFAULT 0 COMMENT '状态',
is_delete TINYINT NOT null DEFAULT 0 COMMENT'是否删除(0未1已)',
create_date datetime NOT NULL DEFAULT now() COMMENT '创建日期',
modify_date datetime COMMENT '修改日期'
)ENGINE = INNODB auto_increment =1 charset = utf8 COMMENT '购物车表';
-- 订单表
CREATE TABLE IF NOT EXISTS `order`(
id INT UNSIGNED PRIMARY KEY auto_increment COMMENT'主键ID',
serial_no VARCHAR(64) UNIQUE NOT NULL COMMENT'订单流水号',
user_id INT UNSIGNED COMMENT '关联用户ID',
state TINYINT NOT NULL DEFAULT 0 COMMENT '状态',
is_delete TINYINT NOT null DEFAULT 0 COMMENT'是否删除(0未1已)',
create_date datetime NOT NULL DEFAULT now() COMMENT '创建日期',
modify_date datetime COMMENT '修改日期'
)ENGINE = INNODB auto_increment =1 charset = utf8 COMMENT '订单表';
-- 订单详情表
CREATE TABLE IF NOT EXISTS order_detail(
id INT UNSIGNED PRIMARY KEY auto_increment COMMENT'主键ID',
serial_no VARCHAR(64) UNIQUE NOT NULL COMMENT'关联订单流水号',
product_id INT UNSIGNED COMMENT '关联商品ID',
product_name VARCHAR(32) COMMENT'冗余商品名称',
product_price DECIMAL (10,2) COMMENT'冗余商品价格',
image VARCHAR(64) NOT NULL DEFAULT 'default_product.jpg' COMMENT '冗余商品图片',
quantity INT UNSIGNED COMMENT '数量',
is_delete TINYINT NOT null D