优化
This commit is contained in:
@@ -2,35 +2,35 @@ SET NAMES utf8mb4;
|
||||
USE baiyue_firstleg;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS fl_port_schedule (
|
||||
id BIGINT UNSIGNED NOT NULL,
|
||||
schedule_no VARCHAR(40) NOT NULL,
|
||||
customer_id BIGINT UNSIGNED NOT NULL COMMENT '当前产品客户ID',
|
||||
ocean_booking_id BIGINT UNSIGNED NOT NULL,
|
||||
container_booking_id BIGINT UNSIGNED NULL,
|
||||
source_type VARCHAR(24) NOT NULL COMMENT 'MANUAL/CARRIER/TERMINAL/API',
|
||||
source_name VARCHAR(128) NOT NULL,
|
||||
source_ref VARCHAR(255) NOT NULL,
|
||||
vessel_name VARCHAR(128) NOT NULL,
|
||||
voyage_no VARCHAR(64) NOT NULL,
|
||||
departure_port_code VARCHAR(32) NOT NULL,
|
||||
departure_port_name VARCHAR(128) NULL,
|
||||
destination_port_code VARCHAR(32) NOT NULL,
|
||||
destination_port_name VARCHAR(128) NULL,
|
||||
etd_at DATETIME(3) NULL,
|
||||
eta_at DATETIME(3) NULL,
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '港务船期记录ID',
|
||||
schedule_no VARCHAR(40) NOT NULL COMMENT '港务船期记录编号',
|
||||
customer_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
||||
ocean_booking_id BIGINT UNSIGNED NOT NULL COMMENT '关联海运订舱ID',
|
||||
container_booking_id BIGINT UNSIGNED NULL COMMENT '关联柜次ID;订舱整票船期时为空',
|
||||
source_type VARCHAR(24) NOT NULL COMMENT '船期来源类型:MANUAL人工录入、CARRIER船公司、TERMINAL码头、API外部接口',
|
||||
source_name VARCHAR(128) NOT NULL COMMENT '船期来源名称',
|
||||
source_ref VARCHAR(255) NOT NULL COMMENT '来源侧记录唯一引用或查询凭据摘要',
|
||||
vessel_name VARCHAR(128) NOT NULL COMMENT '船名快照',
|
||||
voyage_no VARCHAR(64) NOT NULL COMMENT '航次号快照',
|
||||
departure_port_code VARCHAR(32) NOT NULL COMMENT '起运港编码快照',
|
||||
departure_port_name VARCHAR(128) NULL COMMENT '起运港名称快照',
|
||||
destination_port_code VARCHAR(32) NOT NULL COMMENT '目的港编码快照',
|
||||
destination_port_name VARCHAR(128) NULL COMMENT '目的港名称快照',
|
||||
etd_at DATETIME(3) NULL COMMENT '预计离港时间',
|
||||
eta_at DATETIME(3) NULL COMMENT '预计到港时间',
|
||||
booking_cutoff_at DATETIME(3) NULL COMMENT '截单时间',
|
||||
customs_cutoff_at DATETIME(3) NULL COMMENT '截关时间',
|
||||
port_cutoff_at DATETIME(3) NULL COMMENT '截港时间',
|
||||
observed_at DATETIME(3) NOT NULL COMMENT '来源数据观测时间',
|
||||
expires_at DATETIME(3) NOT NULL COMMENT '超过该时间即由API计算为过期',
|
||||
remark VARCHAR(1000) NULL,
|
||||
created_by BIGINT UNSIGNED NOT NULL,
|
||||
created_by_name VARCHAR(64) NULL,
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
updated_by BIGINT UNSIGNED NOT NULL,
|
||||
updated_by_name VARCHAR(64) NULL,
|
||||
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||||
version INT UNSIGNED NOT NULL DEFAULT 0,
|
||||
remark VARCHAR(1000) NULL COMMENT '平台内部备注',
|
||||
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建操作人ID',
|
||||
created_by_name VARCHAR(64) NULL COMMENT '创建操作人姓名快照',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '船期记录创建时间',
|
||||
updated_by BIGINT UNSIGNED NOT NULL COMMENT '最后修改操作人ID',
|
||||
updated_by_name VARCHAR(64) NULL COMMENT '最后修改操作人姓名快照',
|
||||
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '船期记录最后更新时间',
|
||||
version INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_port_schedule_no (schedule_no),
|
||||
UNIQUE KEY uk_port_schedule_source (source_type,source_name,source_ref),
|
||||
@@ -53,17 +53,17 @@ CREATE TABLE IF NOT EXISTS fl_port_schedule (
|
||||
) ENGINE=InnoDB COMMENT='独立港务船期来源聚合,不替代订舱快照';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS fl_port_schedule_history (
|
||||
id BIGINT UNSIGNED NOT NULL,
|
||||
port_schedule_id BIGINT UNSIGNED NOT NULL,
|
||||
action VARCHAR(24) NOT NULL,
|
||||
from_version INT UNSIGNED NULL,
|
||||
to_version INT UNSIGNED NOT NULL,
|
||||
reason VARCHAR(1000) NULL,
|
||||
before_snapshot JSON NULL,
|
||||
after_snapshot JSON NOT NULL,
|
||||
operator_id BIGINT UNSIGNED NOT NULL,
|
||||
operator_name VARCHAR(64) NULL,
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '港务船期变更历史ID',
|
||||
port_schedule_id BIGINT UNSIGNED NOT NULL COMMENT '所属港务船期记录ID',
|
||||
action VARCHAR(24) NOT NULL COMMENT '变更动作:CREATE创建、UPDATE更新',
|
||||
from_version INT UNSIGNED NULL COMMENT '变更前版本;创建时为空',
|
||||
to_version INT UNSIGNED NOT NULL COMMENT '变更后版本',
|
||||
reason VARCHAR(1000) NULL COMMENT '变更原因或说明',
|
||||
before_snapshot JSON NULL COMMENT '变更前船期数据快照;创建时为空',
|
||||
after_snapshot JSON NOT NULL COMMENT '变更后船期数据快照',
|
||||
operator_id BIGINT UNSIGNED NOT NULL COMMENT '操作人ID',
|
||||
operator_name VARCHAR(64) NULL COMMENT '操作人姓名快照',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '历史记录创建时间',
|
||||
PRIMARY KEY (id),
|
||||
KEY idx_port_schedule_history (port_schedule_id,created_at,id),
|
||||
CONSTRAINT fk_port_schedule_history FOREIGN KEY (port_schedule_id) REFERENCES fl_port_schedule(id),
|
||||
@@ -71,16 +71,16 @@ CREATE TABLE IF NOT EXISTS fl_port_schedule_history (
|
||||
) ENGINE=InnoDB COMMENT='港务船期不可变变更历史';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS fl_port_schedule_operation (
|
||||
id BIGINT UNSIGNED NOT NULL,
|
||||
port_schedule_id BIGINT UNSIGNED NULL COMMENT '创建请求完成前允许为空',
|
||||
operator_id BIGINT UNSIGNED NOT NULL,
|
||||
operation VARCHAR(24) NOT NULL,
|
||||
idempotency_key VARCHAR(128) NOT NULL,
|
||||
request_hash CHAR(64) NOT NULL,
|
||||
status VARCHAR(16) NOT NULL DEFAULT 'PROCESSING',
|
||||
result_json JSON NULL,
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
completed_at DATETIME(3) NULL,
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '港务船期写操作幂等记录ID',
|
||||
port_schedule_id BIGINT UNSIGNED NULL COMMENT '关联港务船期ID;创建请求完成前允许为空',
|
||||
operator_id BIGINT UNSIGNED NOT NULL COMMENT '发起写操作的平台操作人ID',
|
||||
operation VARCHAR(24) NOT NULL COMMENT '幂等写操作类型',
|
||||
idempotency_key VARCHAR(128) NOT NULL COMMENT '客户端写操作幂等键',
|
||||
request_hash CHAR(64) NOT NULL COMMENT '规范化请求内容SHA-256摘要;用于识别同键不同请求',
|
||||
status VARCHAR(16) NOT NULL DEFAULT 'PROCESSING' COMMENT '处理状态:PROCESSING处理中、SUCCESS成功',
|
||||
result_json JSON NULL COMMENT '成功结果JSON快照;供幂等重放返回',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '幂等记录创建时间',
|
||||
completed_at DATETIME(3) NULL COMMENT '写操作成功完成时间',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_port_schedule_operation (operator_id,idempotency_key),
|
||||
KEY idx_port_schedule_operation_resource (port_schedule_id,created_at),
|
||||
|
||||
Reference in New Issue
Block a user