## 改造和新增的表
> 对表、字段包括数据行的增加、修改、删除等所有操作,都必须通过sql语句记录在 reform_record.sql 文件里面,**即所有对表的变更,都必须有对应的sql记录**,以便大家**知晓表结构变化**和使用一致的开发环境。
```sql
# 表变更 sql记录
# 以后所有数据结构变更,数据处理过程,都必须记录在此文件中
# last update:2019-03-28 16:13:12
# 专利表结构 SHOW CREATE
CREATE TABLE `t_auth_announcement` (
`authorized_announcement_num` varchar(50) NOT NULL COMMENT '',
`application_num` varchar(50) NOT NULL COMMENT '专利号,如:2011104299451',
`patent_num` varchar(50) NOT NULL COMMENT '专利号',
`application_date` varchar(50) NOT NULL COMMENT '申请日期',
`authorized_announcement_date` varchar(50) NOT NULL COMMENT '授权日期',
`announced_doc_num` varchar(50) NOT NULL COMMENT '授权文档数量',
`apply_publication_date` varchar(50) NOT NULL COMMENT ' 发布日期',
`patentee` varchar(255) NOT NULL DEFAULT '' COMMENT '专利权持有人',
`patentee_addr` varchar(255) NOT NULL COMMENT '权利人地址',
`patent_agency` varchar(255) DEFAULT NULL COMMENT '代理商',
`patent_agency_num` varchar(50) DEFAULT NULL COMMENT '代理人编号 空',
`patent_agent` varchar(255) DEFAULT NULL COMMENT '权利人地址 空',
`designer` varchar(255) NOT NULL COMMENT '发明人',
`invention_name` varchar(255) NOT NULL COMMENT '专利名称',
`status` varchar(1) DEFAULT '0' COMMENT '0:非终止或无效宣告;1:终止或无效宣告',
`remark` varchar(1) NOT NULL DEFAULT '0' COMMENT '是否排除,0:不排除;1:排除',
`except_str` varchar(50) DEFAULT NULL COMMENT '例外说明,大学,学院',
`is_valid` varchar(1) DEFAULT '1' COMMENT '数据是否有效,0:无效;1:有效',
`auth_announcement_file_date` varchar(50) DEFAULT NULL,
`batch_status` varchar(1) DEFAULT '0' COMMENT '是否需要跑批,0:待跑批;1:已跑批或不需要跑批;',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
KEY `name_idx` (`patentee`) USING BTREE,
KEY `status_idx` (`status`,`remark`,`batch_status`) USING BTREE,
KEY `patent_num_idx` (`patent_num`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# 专利申请表结构 SHOW CREATE (之前导的是专利表数据,现在来看申请表信息更全,应该导申请表的数据)
CREATE TABLE `t_patent_apply` (
`patent_id` bigint(20) DEFAULT NULL COMMENT '专利ID',
`patent_number` varchar(50) DEFAULT NULL COMMENT '专利号',
`patent_name` varchar(255) DEFAULT NULL COMMENT '专利名称',
`create_time` date DEFAULT NULL COMMENT 'CURRENT_TIMESTAMP',
`apply_date` varchar(50) DEFAULT NULL COMMENT '申请日期',
`main_number` varchar(50) DEFAULT NULL COMMENT '主分次号',
`status` varchar(255) DEFAULT NULL COMMENT '案件状态',
`sub_date` varchar(50) DEFAULT NULL COMMENT '提交日',
`apply_name` varchar(255) DEFAULT NULL COMMENT '申请人',
`apply_nationality` varchar(50) DEFAULT NULL COMMENT '申请人国籍',
`apply_postal_code` varchar(50) DEFAULT NULL COMMENT '邮政编码',
`apply_adress` varchar(255) DEFAULT NULL COMMENT '申请人地址',
`inventor` varchar(255) DEFAULT NULL COMMENT '发明人',
`agent` varchar(255) DEFAULT NULL COMMENT '代理人',
`agency` varchar(255) DEFAULT NULL COMMENT '代理机构',
`remark` varchar(10) DEFAULT NULL COMMENT '0是在2012年之前申请,1是在2012年之后',
`cost_status` varchar(255) DEFAULT '1',
`end_time` varchar(50) DEFAULT NULL,
`patent_fee` varchar(255) DEFAULT NULL,
`ex_status` varchar(255) DEFAULT '1',
`one_field` varchar(255) DEFAULT NULL COMMENT '第一个字段',
`two_field` varchar(255) DEFAULT NULL,
`tree_field` varchar(255) DEFAULT NULL,
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
KEY `idx` (`patent_number`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='申请信息';
-- SELECT COUNT(1) FROM t_patent_apply; 506440
-- SELECT DISTINCT patent_number, COUNT(1) AS n FROM t_patent_apply; 506440
# 通过验证发现申请表里面没有重复的数据,即一行一个专利
# 提示:上面只是 SHOW CREATE 打印的表结构,不是需要我们执行的
# 商品表需要新增的字段
ALTER TABLE `ecshop2016`.ecs_goods add (
`s_patent_claim_status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '认领状态:0-待校验,1-校验失败,2-待审核,3-审核通过,4-审核失败,5-出售中(我的专利表已经不要了,就直接用这个状态了)',
`s_patent_sale_status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '上架状态:0-待上架,1-上架审核中,2-已上架,3-已下架',
`s_patent_lock_status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '是否锁定(下单后会锁定,交易结束就解锁):0-未锁定,1-已锁定',
`s_patent_sale_out_status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '是否卖出:0-未卖出,1-已卖出',
`s_patent_trade_status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '是否可售:0-不可售,1-正在出售中',
`s_patent_is_bargaining` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '能否议价:0-否,1-可议价',
`s_patent_number` varchar(50) NOT NULL DEFAULT '' COMMENT '专利号,如:2011104299451',
`s_patent_apply_date` varchar(50) NOT NULL DEFAULT '' COMMENT '专利申请日期',
`s_patent_authorize_date` varchar(50) NOT NULL DEFAULT '' COMMENT '专利授权日期',
`s_patent_apply_publish_date` varchar(50) NOT NULL DEFAULT '' COMMENT '申请发布日期',
`s_patent_patentee` varchar(255) NOT NULL DEFAULT '' COMMENT '专利持有人',
`s_patent_patentee_addr` varchar(255) NOT NULL DEFAULT '' COMMENT '专利持有人地址',
`s_patent_agency` varchar(255) NOT NULL DEFAULT '' COMMENT '专利代理机构',
`s_patent_patent_agency_num` varchar(50) NOT NULL DEFAULT '' COMMENT '代理机构编号 空',
`s_patent_agent` varchar(255) NOT NULL DEFAULT '' COMMENT '专利代理人 空',
`s_patent_designer` varchar(255) NOT NULL DEFAULT '' COMMENT '专利发明人',
`s_patent_sale_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '专利上架时间',
`s_patent_sale_out_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '专利卖出时间',
`s_patent_update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '专利更新时间(所有变更的最后更新时间)',
`s_patent_legal_status_text` char(50) NOT NULL DEFAULT '' COMMENT '专利案件的法律状态文字'
);
#`s_patent_name` varchar(255) NOT NULL DEFAULT '' COMMENT '专利名称', 用商品名称 goods_name 代替
# 订单表需要新增的字段
ALTER TABLE `ecshop2016`.ecs_order_info add (
`goods_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '商品ID,把下单流程改了,现在每一个订单里面都只有一个商品'
);
ALTER TABLE `ecshop2016`.ecs_order_info add (
`is_commission` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '是否需要代办:0-否,1-可议价',
`commission_fee` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '代办费用'
);
# 订单表增加 代办事项完成状态
ALTER TABLE `ecshop2016`.ecs_order_info add (
`is_status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '是否完成:0-否,1已完成',
);
# 用户表增加两个字段,用于 会员等级(会员开始时间和结束时间)
ALTER TABLE `ecshop2016`.ecs_users add (
`user_rank_f_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '会员开始时间',
`user_rank_l_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '会员结束时间'
);
# 后台增加代办费用配置项
insert into `ecshop2016`.`ecs_shop_config` (`parent_id`, `code`, `type`, `value`, `sort_order`) VALUES (4, 'commission_fee', 'text', 300, 1);
# 后台增加加费税率配置项
insert into `ecshop2016`.`ecs_shop_config` (`parent_id`, `code`, `type`, `value`, `sort_order`) VALUES (4, 'markup_rate', 'text', 1.2, 1);
# 订单表增加发票记录ID
ALTER TABLE `ecshop2016`.ecs_order_info add (
`invoice_record_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '发票记录ID,0-不开发票'
);
# 订单表增加卖家用户ID
ALTER TABLE `ecshop2016`.ecs_order_info add (
`seller_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '卖家用户ID,其实就是 ecs_users 表 user_id'
);
# 订单表增加 平台加价金额
ALTER TABLE `ecshop2016`.ecs_order_info add (
`markup_amount` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '平台加价费'
);
# 商品表增加所属用户ID
ALTER TABLE `ecshop2016`.ecs_goods add (
`user_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '所属用户ID ,ecs_users 表 user_id'
);
# 商品表增加 是否自营 和 专利类型
ALTER TABLE `ecshop2016`.ecs_goods add (
`s_is_proprietary` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '是否为自营专利:0-否,1-是',
`s_patent_type` tinyint(4) unsigned NOT NULL DEFAULT 1 COMMENT '专利类型:1-发明专利,2-实用新型,3-外观设计'
);
# 商品表增加 主分次号 和 技术领域
ALTER TABLE `ecshop2016`.ecs_goods add (
`s_patent_main_number` varchar(50) NOT NULL DEFAULT '' COMMENT '主分次号:行业分类就是根据这个分的,如 A61K 36/88',
`s_patent_technical_field` varchar(200) NOT NULL DEFAULT '' COMMENT '技术领域:目前由用户输入(后期自动打标签),使用空格分隔,如 自锁式 电线杆 攀爬'
);
# 商品表 增加 申请人 申请人地址 缴费截至日
ALTER TABLE `ecshop2016`.ecs_goods add (
`s_patent_apply_name` varchar(100) NOT NULL DEFAULT '' COMMENT '申请人:如 陈为人/高德软件有限公司',
`s_patent_apply_address` varchar(200) NOT NULL DEFAULT '' COMMENT '申请人地址',
`pay_last_date` varchar(50) NOT NULL DEFAULT '' COMMENT '缴费截至日期'
);
# 数据从 `patent_platform_dev`.`t_auth_announcement` 导入一部分到 `ecshop2016`.`ecs_goods`
insert into `ecshop2016`.`ecs_goods` (
`s_patent_number`,
`s_patent_apply_date`,
`s_patent_authorize_date`,
`s_patent_apply_publish_date`,
`s_patent_patentee`,
`s_patent_patentee_addr`,
`s_patent_agency`,
`s_patent_patent_agency_num`,
`s_patent_agent`,
`s_patent_designer`,
`goods_name`
) select
`patent_num`,
`application_date`,
`authorized_announcement_date`,
`apply_publication_date`,
`patentee`,
`patentee_addr`,
`patent_agency`,
`patent_agency_num`,
`patent_agent`,
`designer`,
`invention_name`
from `patent_platform_dev`.`t_auth_announcement` limit 1000;
# 清空商品表数据
DELETE FROM `ecshop2016`.`ecs_goods`;
# 数据从 `patent_platform_dev`.`t_patent_apply` 导入一部分到 `ecshop2016`.`ecs_goods`
# 之前导的是专利表数据,现在来看申请表信息更全,应该导申请表的数据
insert into `ecshop2016`.`ecs_goods` (
`s_patent_number`,
`s_patent_apply_date`,
`s_patent_main_number`,
`s_patent_agency`,
`s_patent_apply_name`,
`s_patent_apply_address`,
`s_patent_legal_status_text`,
`s_patent_agent`,
`s_patent_designer`,
`goods_name`
) select
`patent_number`,
`apply_date`,
`main_number`,
`agency`,
`apply_name`,
`apply_adress`,
`status`,
`agent`,
`inventor`,
`patent_name`
from `patent_platform_dev`.`t_patent_apply` limit 1000;
# 创建认领记录表
DROP TABLE IF EXISTS `s_patent_claimpatent_record`;
CREATE TABLE `s_patent_claimpatent_record` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '用户ID,卖家ID',
`patent_number` varchar(50) NOT NULL DEFAULT '' COMMENT '专利号,如:2011104299451,如果用户输入不规范,我们会格式化为规范数据',
`patent_name` varchar(500) NOT NULL DEFAULT '' COMMENT '专利名称,卖家上传时的专利名称',
`patent_price` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '价格,卖家上传时的价格,等审核通过后还可以改',
`patent_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '专利ID,对应ecs_goods表 goods_id',
`enclosure` varchar(250) NOT NULL DEFAULT '' COMMENT '上传的专利资料地址,自营卖家可能需要上传转让材料等',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '状态:0-待校验,1-校验失败,2-待审核,3-审核通过,4-审核失败,5-出售中',
`is_delete` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '是否删除了,0-否,1-是',
primary key (`id`)
) engine=innodb AUTO_INCREMENT=1 default charset=utf8 COMMENT='我的专利 表';
-- 标签:我的专利表,上传专利表,爬虫专利表
-- 专利可以同时被多个人上传认领,但是只能被一个人认领审核成功!
# 发票表
DROP TABLE IF EXISTS `s_user_invoice`;
CREATE TABLE `s_user_invoice` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '用户ID',
`title` varchar(200) NOT NULL DEFAULT '' COMMENT '抬头',
`opening_type` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '发票开具类型,1-个人,2-企业',
`invoice_type` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '发票开具类型,1-企业增值税普通发票,2-企业增值税专用发票',
`setting_info` text NULL COMMENT '发票设置内容,json',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`active_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '最后使用时间',
`is_default` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '是否为默认发票,0-否,1-是',
primary key (`id`)
) engine=innodb AUTO_INCREMENT=1 default charset=utf8 COMMENT='用户发票 表';
# 发票记录表
DROP TABLE IF EXISTS `s_invoice_record`;
CREATE TABLE `s_invoice_record` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '用户ID',
`order_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '订单ID,ecs_order_info表 order_id',
`title` varchar(200) NOT NULL DEFAULT '' COMMENT '抬头',
`address` varchar(200) NOT NULL DEFAULT '' COMMENT '地址',
`setting_info` text NULL COMMENT '发票设置内容,json',
`invoice_amount` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '发票上显示的金额,注意不是税额,税额就是根据这个计算的',
`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
`status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '0-生成发票处理中,1-已寄出,2-已完成',
primary key (`id`)
) engine=innodb AUTO_INCREMENT=1 default charset=utf8 COMMENT='发票记录 表';
-- 其他的字段到时候再加,比如 发票寄出后 可能需要填写物流单号等内容
```