渐进式可扩展数据库模型(Progressive Extensible Database Model, pedm)
渐进式可扩展数据库模型(Progressive Extensible Database Model, pedm)
常用字段综合演示表
-- ----------------------------
-- Table structure for tbl_sample
-- [MySQL 5.7 GIS特性] https://www.jianshu.com/p/8833f68c3026
-- BLOB, TEXT, GEOMETRY or JSON column can't have a default value
-- ----------------------------
DROP TABLE IF EXISTS `tbl_sample`;
CREATE TABLE `tbl_sample` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`pid` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '上级ID(下拉单选) [cdl:component=select]',
`fk_id` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '外键ID(下拉单选可分页) [cdl:component=selectpage]',
`fk_ids` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '外键ID(下拉多选) [cdl:component=selectmultiple]',
`week` ENUM('unkonw','mon', 'tues', 'wed', 'thur', 'fri', 'sat', 'sun') NOT NULL DEFAULT 'unkonw' COMMENT '星期(下拉单选) [cdl:component=select]:unkonw=未知,mon=星期一,tues=星期二,wed=星期三,thur=星期四,fri=星期五,sta=星期六,sun=星期天',
`gender` ENUM('male', 'female') NOT NULL DEFAULT 'male' COMMENT '性别(单选) [cdl:component=radio]:male=男,female=女',
`hobby` SET('unkonw','music', 'reading', 'swimming') NOT NULL DEFAULT '' COMMENT '爱好(多选) [cdl:component=checkbox]:unkonw=未知,music=音乐,reading=读书,swimming=游泳',
`title` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '标题 [cdl:search==,like]',
`password` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '密码 [cdl:component=passwordbox]',
`color` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '颜色 [cdl:component=color]',
`bankcardno` VARCHAR(19) NOT NULL DEFAULT '' COMMENT '银行卡号 [cdl:component=bankcardno] [cdl:search]',
`image` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '图片 [cdl:component=imagepicker]',
`images` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '图片组 [cdl:component=imagespicker]',
`attachfile` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '附件 [cdl:component=filepicker]',
`attachfiles` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '附件 [cdl:component=filespicker]',
`keywords` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '关键字 [cdl:component=textarea] [cdl:search=like]',
`description` TEXT NULL COMMENT '描述 [cdl:component=editor]',
`city` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '省市 [cdl:component=citypicker]',
`mapgis` geometry NULL COMMENT '地理位置经纬度 [cdl:component=mappicker]',
`json` VARCHAR(255) DEFAULT NULL COMMENT '配置 [cdl:component=jsontable][key=名称,value=值,remark=描述,url=超链接,image=图片]',
`price` FLOAT(5, 2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '价格 [cdl:component=numberbox] [cdl:search=between]',
`subtotal` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '小计金额',
`clickcount` INT(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '点击次数 [cdl:component=number] [cdl:search==,>,<,>=,<=]',
`rate` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '评分 [cdl:component=rate-picker]',
`startdate` DATE DEFAULT NULL COMMENT '开始日期 [cdl:component=date]',
`activitytime` DATETIME DEFAULT NULL COMMENT '活动时间 [cdl:component=datetime]',
`year` YEAR(4) DEFAULT NULL COMMENT '年 [cdl:component=year]',
`times` TIME DEFAULT NULL COMMENT '时间 [cdl:component=time]',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
`updated_at` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '更新时间',
`sort` INT(10) NOT NULL DEFAULT 0 COMMENT '排序权重 [cdl:component=sortable]',
`switch` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '开关 [cdl:component=switch]',
`status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态(0=隐藏,1=显示)',
`stage` ENUM('0', '1', '2') NOT NULL DEFAULT '1' COMMENT '阶段:0=未开始,1=第一步,2=第二步',
`volume` TINYINT NOT NULL DEFAULT 0 COMMENT '音量 [cdl:component=range]',
`code` TEXT NULL COMMENT '代码 [cdl:component=code]',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='演示表';
渐进式可扩展数据库模型数据表
参考资料:
[数据库字段备注信息声明语法 CDL (Comment Declaration Language) - V2.0] https://www.cnblogs.com/sochishun/p/14132178.html
[数据库设计规范] https://www.cnblogs.com/sochishun/p/14109946.html
[利于复用资料的项目文件命名规范] https://www.cnblogs.com/sochishun/p/14510842.html
[电子商务(电销)平台中订单模块(Order)数据库设计明细] https://www.cnblogs.com/sochishun/p/7040628.html
[电子商务(电销)平台中用户模块(User)数据库设计明细] https://www.cnblogs.com/sochishun/p/7049771.html
[电子商务(电销)平台中内容模块(Content)数据库设计明细] https://www.cnblogs.com/sochishun/p/7060826.html
[电子商务(电销)平台中财务模块(Finance)数据库设计明细] https://www.cnblogs.com/sochishun/p/7060808.html
[电子商务(电销)平台中商品模块(Product)数据库设计明细] https://www.cnblogs.com/sochishun/p/7055490.html
[电子商务(电销)平台中系统设置模块(SysSetting)数据库设计明细] https://www.cnblogs.com/sochishun/p/7050239.html
数据表结构SQL脚本 - 基础模型:
文件:pedm.sql
/**
* 渐进式可扩展数据库模型-基础表-V2
* Progressive Extensible Database Model, pedm
* 版本:2.0.0
* CDL 2.0 语法说明:(建议 CDL 声明写在注释内容的最后面,每个 CDL 声明之间以一个空格隔开,这样排版才不会不影响注释内容的阅读)
* [cdl:json={"disable":true}] 禁用,当前不可用。
* [cdl:json={"component":"checkbox"}] 控件类型,详见附1。
* [cdl:json={"searchable":true,"operate":"like,="}] 是否允许搜索,支持操作符:=,>=,<=,like,null,not_null。默认根据字段数据类型使用贪婪模式。
* [cdl:json={"display":"index"}] 显示范围:list=列表,create=新建表单,edit=编辑表单,all=全部,none=无,默认 all。
* [cdl:json={"required":true}] 必填字段
* CDL 支持的控件类型:
* // H5 原生组件
* color, date, datetime-local, month, week, time, email, file, hidden, image, number, password, range, search, text, url
* // 业务常用组件
* radio, checkbox, select, selectpage, selectmulti, passwordbox, bankcardno, textarea, editor, jsontable, numberbox,
* image-uploader, images-uploader, file-uploader, files-uploader, city-picker, map-picker, rate-picker, sortable, switch, code
*/
-- DROP DATABASE IF EXISTS db_pedm_v2;
-- CREATE DATABASE IF NOT EXISTS db_pedm_v2 DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
-- use db_pedm_v2;
-- SET NAMES utf8mb4;
-- SET FOREIGN_KEY_CHECKS = 0;
-- =============================================================================
-- 权限类 auth
-- =============================================================================
-- ----------------------------
-- 管理员表
-- ----------------------------
DROP TABLE IF EXISTS `pedm_auth_admin`;
CREATE TABLE `pedm_auth_admin` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_name` VARCHAR(60) NOT NULL COMMENT '用户名',
`nick_name` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '昵称',
`contact_name` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '姓名',
`group_name` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '分组名称',
`password` VARCHAR(32) NOT NULL COMMENT '密码',
`salt` VARCHAR(10) NOT NULL DEFAULT '' COMMENT '密码盐',
`avatar` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '头像',
`email` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '电子邮箱',
`mobile` VARCHAR(11) NOT NULL DEFAULT '' COMMENT '手机号码',
`gender` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '性别(0=女,1=男,2=保密)',
`login_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '登录次数',
`login_time` DATETIME COMMENT '登录时间',
`login_ip` VARCHAR(46) NOT NULL DEFAULT '' COMMENT '登录IP',
`register_ip` VARCHAR(46) NOT NULL COMMENT '注册IP',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
`updated_at` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '更新时间',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(0=无效,1=有效)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_name` (`user_name`),
KEY `idx_email` (`email`),
KEY `idx_mobile` (`mobile`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员表';
-- ----------------------------
-- 权限分组表
-- ----------------------------
DROP TABLE IF EXISTS `pedm_auth_group`;
CREATE TABLE `pedm_auth_group` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`group_name` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '分组名称',
`group_title` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '分组标题',
`rules` VARCHAR(2048) NOT NULL DEFAULT '' COMMENT '规则ID',
`app_flag` VARCHAR(16) NOT NULL DEFAULT 'admin' COMMENT '模块标志',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(0=隐藏,1=显示)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_group_name` (`group_name`,`app_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限分组表';
-- ----------------------------
-- 权限规则表
-- ----------------------------
DROP TABLE IF EXISTS `pedm_auth_rule`;
CREATE TABLE `pedm_auth_rule` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`pid` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '父级ID',
`rule_title` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '规则标题',
`rule_name` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '规则名称',
`url` VARCHAR(150) NOT NULL DEFAULT '' COMMENT '规则路径',
`icon` VARCHAR(150) NOT NULL DEFAULT '' COMMENT '图标',
`is_menu` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否菜单(0=否,1=是)',
`extra` VARCHAR(150) NOT NULL DEFAULT '' COMMENT '扩展数据',
`sort` SMALLINT UNSIGNED NOT NULL DEFAULT 999 COMMENT '排序权重',
`app_flag` VARCHAR(16) NOT NULL DEFAULT 'admin' COMMENT '模块标志',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '状态(0=隐藏,1=显示)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_rule_name` (`rule_name`,`app_flag`),
KEY `idx_pid` (`pid`),
KEY `idx_sort` (`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限规则表';
-- ----------------------------
-- 管理员日志表
-- ----------------------------
DROP TABLE IF EXISTS `pedm_auth_admin_log`;
CREATE TABLE `pedm_auth_admin_log` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_name` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '用户名',
`url` VARCHAR(150) NOT NULL DEFAULT '' COMMENT '操作页面',
`title` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '日志标题',
`content` VARCHAR(255) NOT NULL COMMENT '操作内容',
`ip` VARCHAR(46) NOT NULL DEFAULT '' COMMENT 'IP',
`user_agent` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '浏览器User-Agent',
`app_flag` VARCHAR(16) NOT NULL DEFAULT 'admin' COMMENT '模块标志',
`created_at` INT UNSIGNED NOT NULL COMMENT '操作时间',
PRIMARY KEY (`id`),
KEY `idx_user_name` (`user_name`),
KEY `idx_app_flag`(`app_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员日志表';
-- =============================================================================
-- 系统类 sys
-- =============================================================================
-- ----------------------------
-- 系统配置表
-- ----------------------------
DROP TABLE IF EXISTS `pedm_sys_config`;
CREATE TABLE `pedm_sys_config` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`group_name` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '分组名称', -- 这是行内注释
`conf_name` VARCHAR(60) NOT NULL COMMENT '变量名',
`conf_title` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '变量标题 -- 这是注释',
`conf_tip` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '变量描述',
`conf_type` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '类型(string,TEXT,int,bool,array,datetime,date,file)',
`conf_value` TEXT NOT NULL COMMENT '变量值',
`conf_content` TEXT NOT NULL COMMENT '变量字典数据',
`conf_rule` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '验证规则',
`conf_extend` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '扩展属性',
`sort` SMALLINT UNSIGNED NOT NULL DEFAULT 999 COMMENT '排序权重',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_conf_name` (`conf_name`),
KEY `idx_sort` (`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统配置表';
-- ----------------------------
-- 附件表
-- ----------------------------
DROP TABLE IF EXISTS `pedm_sys_attachment`;
CREATE TABLE `pedm_sys_attachment` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`file_name` varchar(150) NOT NULL DEFAULT '' COMMENT '文件名',
`url` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '网址路径',
`path` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '物理路径',
`storage` VARCHAR(100) NOT NULL DEFAULT 'local' COMMENT '存储位置',
`image_width` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '宽度',
`image_height` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '高度',
`image_type` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '图片类型',
`image_frames` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '图片帧数',
`file_size` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '文件大小',
`mime_type` VARCHAR(30) NOT NULL DEFAULT '' COMMENT 'mime类型',
`ext_param` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '透传数据',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
`updated_at` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='附件表';
-- ----------------------------
-- 定时任务表
-- ----------------------------
DROP TABLE IF EXISTS `pedm_sys_crontab`;
CREATE TABLE IF NOT EXISTS `pedm_sys_crontab` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`crontab_type` VARCHAR(10) NOT NULL DEFAULT '' COMMENT '任务类型(url=请求URL,sql=执行SQL,shell=执行Shell)',
`crontab_title` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '任务标题',
`crontab_content` TEXT COMMENT '任务内容(url,sql,shell)',
`crontab_schedule` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '执行周期(Crontab格式:min* hour* day* month* weekday*)',
`max_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '最大执行次数(0为不限)',
`exec_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '已经执行的次数',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
`updated_at` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '更新时间',
`exec_time` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '最后执行时间',
`begin_time` DATETIME NOT NULL COMMENT '开始时间',
`end_time` DATETIME NOT NULL COMMENT '结束时间',
`sort` SMALLINT UNSIGNED NOT NULL DEFAULT 999 COMMENT '排序权重',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '状态(0=禁用,1=启用,2=过期,3=完成)',
PRIMARY KEY (`id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定时任务表';
-- ----------------------------
-- 定时任务日志表
-- ----------------------------
DROP TABLE IF EXISTS `pedm_sys_crontab_log`;
CREATE TABLE IF NOT EXISTS `pedm_sys_crontab_log` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`crontab_id` INT UNSIGNED NOT NULL COMMENT '任务ID',
`exec_time` DATETIME COMMENT '执行时间',
`end_time` DATETIME COMMENT '结束时间',
`result` TEXT COMMENT '执行结果',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '状态(0=失败,1=成功)',
PRIMARY KEY (`id`),
KEY `idx_crontab_id` (`crontab_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定时任务日志表';
-- ----------------------------
-- 邮箱验证码表
-- ----------------------------
DROP TABLE IF EXISTS `pedm_sys_email_captcha`;
CREATE TABLE `pedm_sys_email_captcha` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`event` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '事件',
`email` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '邮箱',
`code` VARCHAR(6) NOT NULL DEFAULT '' COMMENT '验证码',
`count` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '验证次数',
`ip` VARCHAR(46) NOT NULL DEFAULT '' COMMENT 'IP',
`created_at` INT UNSIGNED NULL DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_email`(`email`,`event`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='邮箱验证码表';
-- ----------------------------
-- 短信验证码表
-- ----------------------------
DROP TABLE IF EXISTS `pedm_sys_sms_captcha`;
CREATE TABLE `pedm_sys_sms_captcha` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`event` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '事件',
`mobile` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '手机号',
`code` VARCHAR(6) NOT NULL DEFAULT '' COMMENT '验证码',
`count` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '验证次数',
`ip` VARCHAR(46) NOT NULL DEFAULT '' COMMENT 'IP',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_mobile`(`mobile`,`event`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='短信验证码表';
-- ----------------------------
-- 用户反馈表
-- ----------------------------
DROP TABLE IF EXISTS `pedm_sys_feedback`;
CREATE TABLE IF NOT EXISTS `pedm_sys_feedback` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`user_name` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '用户名',
`contact_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '姓名',
`mobile` VARCHAR(11) NOT NULL DEFAULT '' COMMENT '手机号',
`email` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '电子邮箱',
`category` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '反馈类别',
`content` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '反馈内容',
`images` VARCHAR(1000) NOT NULL DEFAULT '' COMMENT '截图',
`admin_name` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '管理员用户名',
`reply_content` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '回复内容',
`is_read` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已阅(0=否,1=是)',
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态(0=隐藏,1=正常)',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
`updated_at` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '回复时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户反馈表';
数据表结构SQL脚本 - 业务扩展模型:
文件:biz.sql
/**
* 渐进式可扩展数据库模型-业务扩展模型-V2
* Progressive Extensible Database Model, pedm
* 版本:2.0.0
* CDL 2.0 语法说明:(建议 CDL 声明写在注释内容的最后面,每个 CDL 声明之间以一个空格隔开,这样排版才不会不影响注释内容的阅读)
* [cdl:json={"disable":true}] 禁用,当前不可用。
* [cdl:json={"component":"checkbox"}] 控件类型,详见附1。
* [cdl:json={"searchable":true,"operate":"like,="}] 是否允许搜索,支持操作符:=,>=,<=,like,null,not_null。默认根据字段数据类型使用贪婪模式。
* [cdl:json={"display":"index"}] 显示范围:list=列表,create=新建表单,edit=编辑表单,all=全部,none=无,默认 all。
* [cdl:json={"required":true}] 必填字段
* CDL 支持的控件类型:
* // H5 原生组件
* color, date, datetime-local, month, week, time, email, file, hidden, image, number, password, range, search, text, url
* // 业务常用组件
* radio, checkbox, select, selectpage, selectmulti, passwordbox, bankcardno, textarea, editor, jsontable, numberbox,
* image-uploader, images-uploader, file-uploader, files-uploader, city-picker, map-picker, rate-picker, sortable, switch, code
*/
-- =============================================================================
-- 文章内容类 art
-- =============================================================================
-- ----------------------------
-- 文章表
-- ----------------------------
DROP TABLE IF EXISTS `art_article`;
CREATE TABLE `art_article` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`category_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '分类ID [cdl:component=select(table=ps_article_category,textfield=category_name,idfield=id)]',
`category_name` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '分类名称',
`title` VARCHAR(255) NOT NULL COMMENT '文章标题',
`author` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '文章作者',
`source_link` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '原文链接 [cdl:component=url]',
`icon` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '文章图标 [cdl:component=image]',
`summary` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '文章摘要 [cdl:component=textarea]',
`share_title` VARCHAR(180) NOT NULL DEFAULT '' COMMENT '文章分享标题 [cdl:disable]',
`share_intro` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '文章分享简介 [cdl:component=textarea] [cdl:disable]',
`stat_visit_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '浏览次数 [cdl:search=search(like,=)] [cdl:display=index]',
`is_hot` TINYINT NOT NULL DEFAULT 0 COMMENT '是否热门(0=否,1=是)',
`is_recommend` TINYINT NOT NULL DEFAULT 0 COMMENT '是否推荐(0=否,1=是)',
`sort` SMALLINT UNSIGNED NOT NULL DEFAULT 999 COMMENT '排序权重',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(0=隐藏,1=显示)',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
`content` TEXT NOT NULL COMMENT '文章内容 [cdl:component=editor]',
PRIMARY KEY (`id`),
KEY `idx_title` (`title`),
KEY `idx_category_id` (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文章表';
-- ----------------------------
-- 文章分类表
-- ----------------------------
DROP TABLE IF EXISTS `art_article_category`;
CREATE TABLE `art_article_category` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`pid` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '父级ID [cdl:component=select(table=ps_article_category,textfield=category_name,idfield=id)]',
`category_name` VARCHAR(30) NOT NULL COMMENT '标题',
`category_code` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '代码 [cdl:disable]',
`intro` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '简介 [cdl:component=textarea]',
`seo_keywords` VARCHAR(150) NOT NULL DEFAULT '' COMMENT 'SEO 关键词 [cdl:disable]',
`seo_description` VARCHAR(500) NOT NULL DEFAULT '' COMMENT 'SEO 描述 [cdl:disable]',
`icon` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '图标',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(0=隐藏,1=显示)',
`sort` SMALLINT UNSIGNED NOT NULL DEFAULT 999 COMMENT '排序权重',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_pid` (`pid`),
KEY `idx_sort`(`sort`),
KEY `idx_status`(`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文章分类表';
-- =============================================================================
-- 电商类 eb
-- =============================================================================
-- ----------------------------
-- 购物车表
-- ----------------------------
DROP TABLE IF EXISTS `eb_shopping_cart`;
CREATE TABLE `eb_shopping_cart` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`product_id` INT UNSIGNED NOT NULL COMMENT '商品ID',
`product_spec_id` INT NOT NULL DEFAULT 0 COMMENT '商品规格ID',
`quantity` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品数量',
`extra` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '扩展数据',
`flag` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '标识(buynow=立即购买,mobile=手机充值)',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '状态(0=失效,1=有效)',
PRIMARY KEY (`id`),
KEY `idx_user_id`(`user_id`),
KEY `idx_status`(`user_id`, `status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='购物车表';
-- ----------------------------
-- 用户商品收藏表
-- ----------------------------
DROP TABLE IF EXISTS `eb_product_favorite`;
CREATE TABLE `eb_product_favorite` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`product_id` INT UNSIGNED NOT NULL COMMENT '商品ID',
`tag` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '标签(逗号隔开)',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_user_id`(`user_id`),
KEY `idx_product_id`(`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户商品收藏表';
-- ----------------------------
-- 商品表
-- ----------------------------
DROP TABLE IF EXISTS `eb_product_goods`;
CREATE TABLE `eb_product_goods` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`category_id` INT UNSIGNED NOT NULL COMMENT '分类ID [cdl:component=select(table=ps_product_category,textfield=category_name,idfield=id)]',
`product_name` VARCHAR(150) NOT NULL COMMENT '商品名称',
`model` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '型号编码 [cdl:disable]',
`sku` varchar(64) NOT NULL DEFAULT '' COMMENT '商品唯一标识编码 [cdl:disable]',
`upc` varchar(12) NOT NULL DEFAULT '' COMMENT 'UPC条形码 [cdl:disable]',
`ean` varchar(14) NOT NULL DEFAULT '' COMMENT 'EAN条形码 [cdl:disable]',
`isbn` VARCHAR(17) NOT NULL DEFAULT '' COMMENT '国际标准书号 [cdl:disable]',
`tag` VARCHAR(150) NOT NULL DEFAULT '' COMMENT '商品标签(逗号隔开) [cdl:disable]',
`icon` VARCHAR(255) NOT NULL COMMENT '图标',
`carousel_images` TEXT NOT NULL COMMENT '轮播图 [cdl:display=create,edit]',
`video_url` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '短视频 [cdl:disable]',
`intro` VARCHAR(255) NOT NULL COMMENT '商品简介 [cdl:component=textarea] [cdl:display=create,edit]',
`seo_keywords` VARCHAR(96) NOT NULL DEFAULT '' COMMENT 'SEO 关键词 [cdl:disable]',
`price` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '商品价格',
`market_price` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '市场价',
`original_price` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '原价 [cdl:disable]',
`cost_price` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '成本价 [cdl:disable]',
`vip_price` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '贵宾价格 [cdl:disable]',
`promotion_price` DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '促销价格',
`promotion_type` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '促销类型(0=无促销,1=抢购,2=限时折扣,3=秒杀)',
`give_integral` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '赠送积分',
`postage_amount` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '邮费(0=免运费)',
`is_issue_invoice` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否开具增值税发票(0=否,1=是) [cdl:disable]',
`unit_name` VARCHAR(15) NOT NULL DEFAULT '' COMMENT '库存单位 [cdl:disable]',
`stat_stock_quantity` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '总库存',
`stat_sales_quantity` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '销量 [cdl:display=index]',
`stat_visited_quantity` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '访问量 [cdl:display=index]',
`stat_favorite_quantity` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '收藏量 [cdl:display=index]',
`stat_star_quantity` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '好评星级 [cdl:disable]',
`stat_evaluation_quantity` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '评价数 [cdl:disable]',
`is_limited_quantity` TINYINT NOT NULL DEFAULT 0 COMMENT '是否限量销售(0=否,1=是)',
`is_limited_time` TINYINT NOT NULL DEFAULT 0 COMMENT '是否限时销售(0=否,1=是)',
`limit_quantity` INT NOT NULL DEFAULT 0 COMMENT '销售限量',
`begin_time` DATETIME COMMENT '开始时间 [cdl:disable]',
`end_time` DATETIME COMMENT '结束时间 [cdl:disable]',
`is_virtual` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否为虚拟商品(0=否,1=是) [cdl:disable]',
`is_deduction_inventory` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否扣减库存(0=否,1=是) [cdl:disable]',
`is_appoint` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否是预约商品(0=否,1=是) [cdl:disable]',
`is_presell` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否是预售商品(0=否,1=是) [cdl:disable]',
`is_have_gift` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否拥有赠品(0=否,1=是) [cdl:disable]',
`is_hot` TINYINT NOT NULL DEFAULT 0 COMMENT '是否热销(0=否,1=是)',
`is_recommend` TINYINT NOT NULL DEFAULT 0 COMMENT '是否推荐(0=否,1=是)',
`is_new` TINYINT NOT NULL DEFAULT 0 COMMENT '是否新品(0=否,1=是)',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '状态(0=未上架,1=上架)',
`created_at` INT UNSIGNED DEFAULT NULL COMMENT '创建时间',
`updated_at` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '更新时间',
`sort` SMALLINT UNSIGNED NOT NULL DEFAULT 999 COMMENT '排序权重 [cdl:disable]',
`soure_link` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '外部链接(淘宝、天猫、1688商品保存标识,避免商品重复入库) [cdl:component=url]',
`brand_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '品牌ID [cdl:disable]',
`mch_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商户ID(0=管理员,n=商户) [cdl:disable]',
`content` TEXT NOT NULL COMMENT '商品描述(PC端) [cdl:component=editor]',
`content_m` TEXT NOT NULL COMMENT '商品描述(移动端) [cdl:component=editor]',
PRIMARY KEY (`id`),
KEY `idx_category_id` (`category_id`),
KEY `idx_product_name` (`product_name`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表';
-- ----------------------------
-- 商品分类表
-- ----------------------------
DROP TABLE IF EXISTS `eb_product_category`;
CREATE TABLE `eb_product_category` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`pid` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '父级ID [cdl:component=select(table=ps_product_category,textfield=category_name,idfield=id)]',
`category_name` VARCHAR(60) NOT NULL COMMENT '分类名称',
`subtitle` VARCHAR(80) NOT NULL DEFAULT '' COMMENT '副标题 [cdl:disable]',
`is_allow_virtual` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否允许发布虚拟商品(0=否,1=是) [cdl:disable]',
`seo_keywords` VARCHAR(150) NOT NULL DEFAULT '' COMMENT 'SEO 关键词 [cdl:disable]',
`seo_description` VARCHAR(500) NOT NULL DEFAULT '' COMMENT 'SEO 描述 [cdl:disable]',
`icon` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '图标',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(0=隐藏,1=显示)',
`sort` SMALLINT UNSIGNED NOT NULL DEFAULT 999 COMMENT '排序权重',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_pid`(`pid`),
KEY `idx_status` (`status`),
KEY `idx_sort`(`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品分类表';
-- ----------------------------
-- 商品评论表
-- ----------------------------
DROP TABLE IF EXISTS `eb_product_comments`;
CREATE TABLE `eb_product_comments` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`product_id` INT UNSIGNED NOT NULL COMMENT '商品ID',
`order_id` INT UNSIGNED NOT NULL COMMENT '订单ID',
`rating` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '评价级别',
`product_score` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品分数',
`service_score` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '服务分数',
`content` VARCHAR(200) NOT NULL COMMENT '评论内容',
`images` TEXT COMMENT '图片',
`created_at` INT UNSIGNED NOT NULL COMMENT '评论时间',
`reply_time` DATETIME COMMENT '管理员回复时间',
`reply_content` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '管理员回复内容',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '状态(0=隐藏,1=显示)',
`is_anonymous` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否匿名(0=否,1=是)',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_product_id` (`product_id`),
KEY `idx_status`(`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品评论表';
-- ----------------------------
-- 商品分类规格表
-- ----------------------------
DROP TABLE IF EXISTS `eb_product_specification`;
CREATE TABLE `eb_product_specification` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`spec_name` VARCHAR(60) NOT NULL COMMENT '规格名称',
`spec_code` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '规格代码',
`category_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品分类ID',
`category_name` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '商品分类名称',
`sort` SMALLINT UNSIGNED NOT NULL DEFAULT 999 COMMENT '排序权重',
PRIMARY KEY (`id`),
KEY `idx_category_id`(`category_id`),
KEY `idx_sort`(`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品分类规格表';
-- ----------------------------
-- 商品分类规格值表
-- ----------------------------
DROP TABLE IF EXISTS `eb_product_specification_value`;
CREATE TABLE `eb_product_specification_value` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`spec_id` INT UNSIGNED NOT NULL COMMENT '所属规格ID',
`category_id` INT UNSIGNED NOT NULL COMMENT '分类ID',
`spec_value_name` VARCHAR(60) NOT NULL COMMENT '规格值名称',
`spec_value_color` VARCHAR(10) NOT NULL DEFAULT '' COMMENT '规格颜色',
`sort` SMALLINT UNSIGNED NOT NULL DEFAULT 999 COMMENT '排序权重',
PRIMARY KEY (`id`),
KEY `idx_spec_id`(`spec_id`),
KEY `idx_sort`(`sort`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品分类规格值表';
-- ----------------------------
-- 商品规格信息表
-- ----------------------------
DROP TABLE IF EXISTS `eb_product_specification_info`;
CREATE TABLE `eb_product_specification_info` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`product_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品ID',
`spec_value_id` INT UNSIGNED NOT NULL COMMENT '所属规格ID',
`price` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '销售价格',
`cost` DECIMAL(8,2) UNSIGNED NOT NULL COMMENT '成本价',
`stock` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '库存',
`sales` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '销量',
`image` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '图片',
`weight` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '重量(kg) ',
`barcode` VARCHAR(80) NOT NULL DEFAULT '' COMMENT '条形码',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_product_id` (`product_id`),
KEY `idx_spec_value_id` (`spec_value_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品规格信息表';
-- ----------------------------
-- 优惠券表
-- ----------------------------
DROP TABLE IF EXISTS `eb_coupon`;
CREATE TABLE `eb_coupon` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`coupon_name` VARCHAR(60) NOT NULL COMMENT '优惠券名称',
`coupon_code` VARCHAR(32) NOT NULL COMMENT '优惠券代码',
`integral` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '兑换消耗积分值',
`coupon_value` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '优惠券面值',
`use_min_amount` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '最低消费多少金额可使用用优惠券',
`expiry_time` DATETIME COMMENT '优惠券有效期',
`begin_time` DATETIME COMMENT '开始领取时间',
`end_time` DATETIME COMMENT '结束领取时间',
`total_quantity` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '优惠券总数量',
`quantity` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '优惠券可领取数量',
`is_unlimited` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否无限张数(0=否,1=是)',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(0=禁用,1=启用,2=过期,3=领完)',
`sort` SMALLINT UNSIGNED NOT NULL DEFAULT 999 COMMENT '排序权重',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_coupon_code`(`coupon_code`),
KEY `idx_time_range`(`begin_time`, `end_time`),
KEY `idx_quantity`(`quantity`),
KEY `idx_status`(`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='优惠券表';
-- ----------------------------
-- 优惠券领取表
-- ----------------------------
DROP TABLE IF EXISTS `eb_coupon_receive`;
CREATE TABLE `eb_coupon_receive` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`coupon_id` INT UNSIGNED NOT NULL COMMENT '优惠券ID',
`coupon_title` VARCHAR(60) NOT NULL COMMENT '优惠券名称',
`coupon_value` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '优惠券面值',
`use_min_amount` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '最低消费多少金额可用优惠券',
`created_at` INT UNSIGNED NOT NULL COMMENT '领取时间',
`expiry_time` DATETIME COMMENT '优惠券有效期',
`use_time` DATETIME COMMENT '使用时间',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '状态(0=未使用,1=已使用,2=已过期)',
PRIMARY KEY (`id`),
KEY `idx_coupon_id`(`coupon_id`),
KEY `idx_user_id`(`user_id`),
KEY `idx_expiry_time`(`expiry_time`),
KEY `idx_status`(`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='优惠券领取表';
-- ----------------------------
-- 快递公司表
-- ----------------------------
DROP TABLE IF EXISTS `eb_express`;
CREATE TABLE `eb_express` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`express_name` VARCHAR(30) NOT NULL COMMENT '快递公司名称',
`express_code` VARCHAR(50) NOT NULL COMMENT '快递公司代码',
`homepage` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '快递公司网址 [cdl:required]',
`icon` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '图标',
`sort` SMALLINT UNSIGNED NOT NULL DEFAULT 999 COMMENT '排序权重',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(0=隐藏,1=显示)',
`api_status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '接口API状态(0=不可用,1=可用)',
`api_url` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '接口API地址',
`api_key` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '接口API参数签名密钥',
`api_additional_param` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '接口API附加参数(URL请求参数格式,例如:id=1,2,3&name=a,b,c)',
`api_method` CHAR(4) NOT NULL DEFAULT 'POST' COMMENT '接口API的请求方法(GET=GET请求,POST=POST请求)',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_code` (`express_code`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='快递公司表';
-- ----------------------------
-- 订单表
-- ----------------------------
DROP TABLE IF EXISTS `eb_order`;
CREATE TABLE `eb_order` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`order_no` VARCHAR(32) NOT NULL COMMENT '订单编号',
`order_from` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '订单来源(1=PC,2=手机)',
`total_quantity` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '订单商品总数',
`total_amount` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '订单总价',
`postage_amount` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '邮费',
`pay_amount` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '实际支付金额',
`pay_postage_amount` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '支付邮费',
`deduction_amount` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '抵扣金额',
`give_integral` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '订单赠送积分',
`gain_integral` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '消费赚取积分',
`use_integral` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '使用积分',
`coupon_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '优惠券ID',
`coupon_amount` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '优惠券金额',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
`pay_time` DATETIME COMMENT '支付时间',
`payment_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '支付方式ID',
`trade_no` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '第三方交易单号',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '订单状态(0=待确认,1=待发货,2=待收货,3=已收货,4=已完成,5=已退款,6=已取消,7=已关闭)',
`evaluation_status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '评价状态(0=未评价,1=已评价,2=已过期未评价)',
`pay_status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '支付状态(0=未支付,1=已支付,2=已退款,3=部分退款)',
`refund_status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '退款状态(0=未退款,1=申请中,2=已退款)',
`refund_reason_image` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '退款图片',
`refund_reason_explain` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '退款用户说明',
`refund_reason_time` DATETIME COMMENT '退款时间',
`refund_reject_explain` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '不退款的理由',
`refund_amount` DECIMAL(8,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '退款金额',
`delivery_name` VARCHAR(60) NOT NULL COMMENT '收货人姓名',
`delivery_phone` VARCHAR(18) NOT NULL COMMENT '收货人电话',
`delivery_address` VARCHAR(100) NOT NULL COMMENT '收货人详细地址',
`express_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '快递公司ID',
`express_no` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '快递单号',
`buyer_remark` VARCHAR(512) NOT NULL COMMENT '买家备注',
`admin_remark` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '管理员备注',
`confirm_remark` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '订单确认备注',
`confirm_time` DATETIME COMMENT '订单确认时间',
`delivery_time` DATETIME COMMENT '发货时间',
`cancel_time` DATETIME COMMENT '取消时间',
`receiving_time` DATETIME COMMENT '收货时间',
`close_time` DATETIME COMMENT '关闭时间',
`mch_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商户ID',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_no`(`order_no`),
KEY `idx_user_id`(`user_id`),
KEY `idx_status`(`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表';
-- ----------------------------
-- 订单商品表
-- ----------------------------
DROP TABLE IF EXISTS `eb_order_detail`;
CREATE TABLE `eb_order_detail` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`order_id` INT UNSIGNED NOT NULL COMMENT '订单ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '买家ID',
`product_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品ID',
`product_name` VARCHAR(60) NOT NULL COMMENT '商品名称',
`product_price` DECIMAL(10,2) NOT NULL COMMENT '商品价格',
`product_quantity` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品数量',
`product_image` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '商品图片',
`tax` DECIMAL(8,2) NOT NULL DEFAULT 0.00 COMMENT '税额',
`subtotal` DECIMAL(10,2) UNSIGNED NOT NULL COMMENT '小计金额',
`product_type` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品类型(0=默认,1=抢购商品,2=限时折扣商品,3=组合套装,4=赠品,5=拼团,6=用户等级折扣)',
`promotions_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '促销活动ID(抢购ID/限时折扣ID/优惠套装ID)与 product_type 搭配使用',
PRIMARY KEY (`id`),
KEY `idx_order_id`(`order_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_product_id`(`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单商品表';
-- ----------------------------
-- 订单退货表
-- ----------------------------
DROP TABLE IF EXISTS `eb_order_return`;
CREATE TABLE `eb_order_return` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`order_id` INT UNSIGNED NOT NULL COMMENT '订单ID',
`order_no` VARCHAR(32) NOT NULL COMMENT '订单编号',
`refund_no` VARCHAR(32) NOT NULL COMMENT '退货编号',
`user_id` INT UNSIGNED NOT NULL COMMENT '买家ID',
`user_name` VARCHAR(60) NOT NULL COMMENT '买家用户名',
`order_detail_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '订单详情id(0=全部退款)',
`product_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品id(0=全部退款)',
`product_name` VARCHAR(60) NOT NULL COMMENT '商品名称',
`product_quantity` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品退货数量',
`refund_amount` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '退款金额',
`refund_type` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '申请类型(1=仅退款,2=退货退款)',
`return_type` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '退货类型(1=不用退货,2=需要退货)',
`audit_status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '审核状态(1=待审核,2=同意,3=不同意)',
`delivery_status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '物流状态(1=待发货,2=待收货,3=未收到,4=已收货)',
`images` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '退款退货凭证图片',
`buyer_message` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '退款退货申请原因',
`admin_message` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '管理员备注',
`express_id` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '物流公司编号',
`express_no` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '物流单号',
`delivery_time` DATETIME COMMENT '发货时间',
`delay_time` DATETIME COMMENT '收货延迟时间',
`receive_time` DATETIME COMMENT '收货时间',
`receive_message` VARCHAR(300) NOT NULL DEFAULT '' COMMENT '收货备注',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
`admin_operate_time` DATETIME COMMENT '管理员处理时间',
PRIMARY KEY (`id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_product_id` (`product_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_audit_status` (`audit_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单退货表';
-- ----------------------------
-- 订单操作日志表
-- ----------------------------
DROP TABLE IF EXISTS `eb_order_log`;
CREATE TABLE `eb_order_log` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`admin_name` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '操作者用户名',
`order_id` INT UNSIGNED NOT NULL COMMENT '订单ID',
`operate` VARCHAR(32) NOT NULL COMMENT '操作名称',
`message` VARCHAR(255) NOT NULL COMMENT '操作备注',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_order_id`(`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单操作日志表';
-- ----------------------------
-- 发票信息表
-- ----------------------------
DROP TABLE IF EXISTS `eb_invoice`;
CREATE TABLE `eb_invoice` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`order_id` INT UNSIGNED NOT NULL COMMENT '订单ID',
`invoice_type` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '发票类型(1=普通发票,2=增值税发票)',
`invoice_title` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '发票抬头(普通发票)',
`invoice_code` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '纳税人识别号(普通发票)',
`invoice_content` VARCHAR(10) NOT NULL DEFAULT '' COMMENT '发票内容(普通发票)',
`invoice_company` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '单位名称',
`invoice_company_code` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '纳税人识别号',
`invoice_reg_address` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '注册地址',
`invoice_reg_phone` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '注册电话',
`invoice_reg_bank_name` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '开户银行',
`invoice_reg_bank_account` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '银行帐户',
`invoice_delivery_name` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '收票人姓名',
`invoice_delivery_phone` VARCHAR(15) NOT NULL DEFAULT '' COMMENT '收票人手机号',
`invoice_delivery_addrress` VARCHAR(150) NOT NULL DEFAULT '' COMMENT '收票人地址',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_order_id`(`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='发票信息表';
-- =============================================================================
-- 用户类 usr
-- =============================================================================
-- ----------------------------
-- 用户表
-- ----------------------------
DROP TABLE IF EXISTS `usr_user`;
CREATE TABLE `usr_user` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_name` VARCHAR(60) NOT NULL COMMENT '用户账号',
`nick_name` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '用户昵称',
`contact_name` VARCHAR(25) NOT NULL DEFAULT '' COMMENT '真实姓名',
`password` VARCHAR(32) NOT NULL COMMENT '用户密码(MD5加密)[cdl:display=create,edit]',
`salt` VARCHAR(10) NOT NULL DEFAULT '' COMMENT '密码盐 [cdl:display=none]',
`trade_pwd` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '交易密码 [cdl:display=create]',
`birthday` DATE COMMENT '生日 [cdl:display=none]',
`gender` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '性别(0=女,1=男,2=保密)',
`idcard_no` VARCHAR(18) NOT NULL DEFAULT '' COMMENT '身份证号码 [cdl:disable]',
`group_name` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '分组名称 [cdl:disable]',
`level` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户等级',
`avatar` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '用户头像',
`email` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '电子邮箱',
`mobile` VARCHAR(11) NOT NULL DEFAULT '' COMMENT '手机号码',
`created_at` INT UNSIGNED NOT NULL COMMENT '注册时间 [cdl:display=none]',
`register_ip` VARCHAR(46) NOT NULL COMMENT '注册IP [cdl:display=none]',
`login_time` DATETIME COMMENT '上次登录时间',
`login_ip` VARCHAR(46) NOT NULL DEFAULT '' COMMENT '上次登录IP [cdl:display=none]',
`stat_total_money` DECIMAL(10,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '累计金额 [cdl:display=index]',
`blance_money` DECIMAL(10,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '用户余额 [cdl:display=index]',
`frozen_money` DECIMAL(10,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '用户冻结金额 [cdl:display=index]',
`integral` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户积分 [cdl:display=index]',
`experience` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户经验值 [cdl:display=index]',
`signin_days_total` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '签到总天数 [cdl:display=none]',
`signin_days_series` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '持续签到天数总数(非连续周期清零)',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(1=正常,0=禁止)',
`remark` VARCHAR(120) NOT NULL DEFAULT '' COMMENT '备注信息',
`inviter_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '邀请人ID [cdl:display=index]',
`alipay_openid` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '支付宝openID [cdl:display=none]',
`weixin_openid` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '微信openID [cdl:display=none]',
`weixin_unionid` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '微信unionID [cdl:display=none]',
`weixin_web_openid` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '微信web用户openID [cdl:display=none]',
`qq_openid` VARCHAR(60) NOT NULL DEFAULT '' COMMENT 'QQopenID [cdl:display=none]',
`qq_unionid` VARCHAR(60) NOT NULL DEFAULT '' COMMENT 'QQunionID [cdl:display=none]',
`baidu_openid` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '百度openID [cdl:display=none]',
`toutiao_openid` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '今日头条openID [cdl:display=none]',
`sina_openid` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '新浪微博openID [cdl:display=none]',
PRIMARY KEY (`id`),
KEY `idx_user_name`(`user_name`),
KEY `idx_mobile` (`mobile`),
KEY `idx_email` (`email`),
KEY `idx_status`(`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
-- ----------------------------
-- 用户分组表
-- ----------------------------
DROP TABLE IF EXISTS `usr_group`;
CREATE TABLE `usr_group` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`group_name` VARCHAR(30) NOT NULL COMMENT '分组名称',
`group_title` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '分组标题',
`rules` VARCHAR(2048) NOT NULL DEFAULT '' COMMENT '规则ID',
`sort` SMALLINT UNSIGNED NOT NULL DEFAULT 999 COMMENT '排序权重',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(0=隐藏,1=显示)',
PRIMARY KEY (`id`),
KEY `idx_group_name`(`group_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户分组表';
-- ----------------------------
-- 用户等级表
-- ----------------------------
DROP TABLE IF EXISTS `usr_level`;
CREATE TABLE `usr_level` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`level_value` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '等级值',
`level_name` VARCHAR(30) NOT NULL COMMENT '等级名称',
`level_title` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '等级标题',
`icon` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '图标',
`experience` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '所需经验值',
`extra` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '扩展数据',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(0=隐藏,1=显示)',
PRIMARY KEY (`id`),
KEY `idx_level_value`(`level_value`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户等级表';
-- ----------------------------
-- 推广员表
-- ----------------------------
DROP TABLE IF EXISTS `usr_promoter`;
CREATE TABLE IF NOT EXISTS `usr_promoter` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '状态(0=审核中,1=已审核,2=已清退)',
`stat_total_amount` DECIMAL(10,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '累计佣金 ',
`stat_lv1_quantity` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '1级成员数量',
`stat_lv2_quantity` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '2级成员数量',
`stat_lv3_quantity` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '3级成员数量',
`created_at` INT UNSIGNED NOT NULL COMMENT '申请时间',
`stat_product_quantity` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '分销商品累计件数',
`stat_product_amount` DECIMAL(10,0) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '分销商品累计金额',
PRIMARY KEY (`id`),
KEY `idx_user_id`(`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='推广员表';
-- ----------------------------
-- 用户收货地址表
-- ----------------------------
DROP TABLE IF EXISTS `usr_address`;
CREATE TABLE `usr_address` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`contact_name` VARCHAR(60) NOT NULL COMMENT '姓名',
`mobile` VARCHAR(11) NOT NULL COMMENT '手机号',
`province` VARCHAR(60) NOT NULL COMMENT '省份',
`city` VARCHAR(60) NOT NULL COMMENT '城市',
`street` VARCHAR(60) NOT NULL COMMENT '街道',
`detail` VARCHAR(150) NOT NULL COMMENT '详细地址',
`post_code` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '邮编',
`longitude` DOUBLE(10,6) NOT NULL DEFAULT 0 COMMENT '经度(分米级)',
`latitude` DOUBLE(10,6) NOT NULL DEFAULT 0 COMMENT '纬度(分米级)',
`is_default` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否默认(0=否,1=是)',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_user_id`(`user_id`),
KEY `idx_is_default`(`is_default`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户收货地址表';
-- ----------------------------
-- 用户积分日志表
-- ----------------------------
DROP TABLE IF EXISTS `usr_integral_log`;
CREATE TABLE `usr_integral_log` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`user_name` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '用户名',
`integral` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '变更积分',
`memo` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '变更原因',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_user_id`(`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户积分日志表';
-- =============================================================================
-- 财务类 fin
-- =============================================================================
-- ----------------------------
-- 财务提现表
-- ----------------------------
DROP TABLE IF EXISTS `fin_withdrawal`;
CREATE TABLE `fin_withdrawal` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`serial_no` VARCHAR(16) NOT NULL COMMENT '流水号',
`contact_name` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '姓名',
`payment_type` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '支付方式(bank=银行卡,alipay=支付宝,weixin=微信)',
`trade_no` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '第三方交易单号',
`bank_name` VARCHAR(60) NOT NULL COMMENT '银行名称',
`bank_no` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '银行卡号',
`bank_holder` VARCHAR(10) NOT NULL DEFAULT '' COMMENT '开户人姓名',
`alipay_no` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '支付宝账号',
`wechat_no` VARCHAR(15) NOT NULL DEFAULT '' COMMENT '微信号',
`amount` DECIMAL(10,2) UNSIGNED NULL DEFAULT 0.00 COMMENT '提现金额',
`commission_amount` DECIMAL(6,2) UNSIGNED NOT NULL DEFAULT 0.00 COMMENT '手续费',
`user_remark` VARCHAR(150) NOT NULL DEFAULT '' COMMENT '用户备注',
`admin_remark` VARCHAR(150) NOT NULL DEFAULT '' COMMENT '管理员备注',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
`updated_at` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '审核时间',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '状态(0=审核中,1=已提现,2=未通过)',
PRIMARY KEY (`id`),
KEY `idx_user_id`(`user_id`),
KEY `idx_status`(`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户提现表';
-- ----------------------------
-- 财务充值表
-- ----------------------------
DROP TABLE IF EXISTS `fin_recharge`;
CREATE TABLE `fin_recharge` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`serial_no` VARCHAR(16) NOT NULL COMMENT '流水号',
`amount` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '充值金额',
`user_remark` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '用户备注',
`admin_remark` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '管理员备注',
`payment_type` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '支付方式(cash=现金,bank=银行转账,alipay=支付宝,weixin=微信)',
`trade_no` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '第三方交易单号',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '状态(0=未支付,1=已支付,2=已取消)',
`created_at` INT UNSIGNED NOT NULL COMMENT '充值时间',
`updated_at` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '支付时间',
PRIMARY KEY (`id`),
KEY `idx_user_id`(`user_id`),
KEY `idx_status`(`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户充值表';
-- ----------------------------
-- 财务日志表
-- ----------------------------
DROP TABLE IF EXISTS `fin_log`;
CREATE TABLE IF NOT EXISTS `fin_log` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`memo` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '变更原因',
`user_id` INT NOT NULL COMMENT '用户ID [cdl:display=none]',
`user_name` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '用户名',
`currency_type` TINYINT NOT NULL DEFAULT 1 COMMENT '货币类型(1=人民币,2=虚拟币)',
`amount` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '变更金额',
`item_id` INT NOT NULL DEFAULT 0 COMMENT '品项ID',
`item_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '品项名称',
`item_event` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '交易事件',
`status` TINYINT NOT NULL COMMENT '资金流向(1=充值成功,2=提现申请,3=提现成功,4=提现撤回,11=商城下单,12=商城退货,13=取消订单,61=兑换礼包,62=转账扣款,63=转账收款)',
`created_at` INT UNSIGNED NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_status` (`status`),
KEY `idx_currency_type` (`currency_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户财务日志表';
-- =============================================================================
-- 统计类 stat
-- =============================================================================
-- ----------------------------
-- 用户浏览商品统计分析表
-- ----------------------------
DROP TABLE IF EXISTS `stat_user_product_visit`;
CREATE TABLE `stat_user_product_visit` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` INT UNSIGNED NOT NULL COMMENT '用户ID',
`product_id` INT UNSIGNED NOT NULL COMMENT '商品ID',
`category_id` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '商品分类ID',
`created_at` INT UNSIGNED NOT NULL COMMENT '添加时间',
`date_ymd` DATE NOT NULL DEFAULT '1970-1-1' COMMENT '日期',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_product_id` (`product_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户浏览商品统计分析表';
-- =============================================================================
-- 其他类
-- =============================================================================
-- ----------------------------
-- 代理商表
-- ----------------------------
DROP TABLE IF EXISTS `agt_agent_admin`;
CREATE TABLE IF NOT EXISTS `agt_agent_admin` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_name` VARCHAR(60) NOT NULL COMMENT '用户名',
`nick_name` VARCHAR(60) NOT NULL DEFAULT '' COMMENT '昵称',
`contact` VARCHAR(30) NOT NULL DEFAULT '' COMMENT '联系人',
`wechat` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '微信',
`password` VARCHAR(32) NOT NULL COMMENT '密码 [cdl:display=create,edit]',
`salt` VARCHAR(10) NOT NULL DEFAULT '' COMMENT '密码盐 [cdl:display=none]',
`avatar` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '头像',
`email` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '电子邮箱',
`mobile` VARCHAR(11) NOT NULL DEFAULT '' COMMENT '手机号码',
`gender` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '性别(0=女,1=男,2=保密)',
`login_count` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '登录次数',
`login_time` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '登录时间 [cdl:display=index]',
`login_ip` VARCHAR(46) NOT NULL DEFAULT '' COMMENT '登录IP [cdl:display=none]',
`register_ip` VARCHAR(46) NOT NULL COMMENT '注册IP [cdl:display=none]',
`created_at` INT UNSIGNED NOT NULL COMMENT '注册时间 [cdl:display=none]',
`updated_at` INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '审核时间 [cdl:display=none]',
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '状态(0=待审核,1=审核通过,2=审核失败,3=禁用)',
`audit_comment` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '审核备注',
`commission_rate` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '提成比率',
`total_amount` INT NOT NULL DEFAULT 0 COMMENT '累计金额 [cdl:display=index]',
`blance_amount` INT NOT NULL DEFAULT 0 COMMENT '可用余额 [cdl:display=index]',
`frozen_amount` INT NOT NULL DEFAULT 0 COMMENT '冻结金额 [cdl:display=index]',
`stat_withdrawal_amount` INT NOT NULL DEFAULT 0 COMMENT '提现总金额 [cdl:display=none]',
`stat_income_amount` INT NOT NULL DEFAULT 0 COMMENT '收益总金额 [cdl:display=none]',
`stat_referral_quantity` INT NOT NULL DEFAULT 0 COMMENT '推广量 [cdl:display=none]',
PRIMARY KEY (`id`),
KEY `idx_user_name` (`user_name`),
KEY `idx_mobile` (`mobile`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='代理商表';