## 改造和新增的表
> 對表、字段包括數據行的增加、修改、刪除等所有操作,都必須通過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='發票記錄 表';
-- 其他的字段到時候再加,比如 發票寄出后 可能需要填寫物流單號等內容
```