这是学习笔记的第 2096 篇文章

 

最近两天梳理了下生命周期管理的内容,在重新梳理的过程中,原先一些没想明白的点在这个过程中也整理明白了,而整个改进的过程在重新梳理时,发现不会大改,而是在入口和过滤的部分做一些补充,为此我也准备了如下的一些测试案例,准备把现有的流程能够较为完整的走一遍。

  其实这个过程中反复琢磨的东西,本质上还是模型。 

对象生命周期管理设计_学习

这是一个让我相见恨晚的设计图,折腾了一圈,目前来看,能够满足我预设的绝大多数场景。

接下来我把一些测试计划和数据模型的设计内容也总结出来。

测试计划
测试case 测试类型 测试描述 预期结果 备注
1 初始化表 初始化表 mysql_tab_baseline(insert) mysql_snap_tab_col_info(insert) mysql_snap_tab_index_info(insert)  
2 初始化表 初始化库 mysql_db_baseline(insert)  
3 DDL-新增 新建表 mysql_snap_tab_info(insert)   mysql_tab_baseline(insert) mysql_snap_tab_col_info(insert) mysql_snap_tab_index_info(insert)  
4 DDL-修改表 修改表-新增字段 mysql_snap_tab_info(insert)  mysql_snap_tab_col_info(insert)  
5 DDL-修改表 修改表-修改字段 mysql_snap_tab_info(insert) mysql_snap_tab_col_info(insert)  
6 DDL-修改表 修改表-删除字段 mysql_snap_tab_info(insert) mysql_snap_tab_col_info(insert)  
7 DDL-修改表 修改表-新增索引 mysql_snap_tab_info(insert)  mysql_snap_tab_index_info(insert)  
8 DDL-修改表 修改表-删除索引 mysql_snap_tab_info(insert)  mysql_snap_tab_index_info(insert)  
9 DDL-删除表 truncate表数据 待定  
10 DDL-删除表 drop表数据 mysql_tab_baseline(update)  
11 DML insert,delete,update mysql_snap_hot_tab_info(insert)  

mysql_life_cycle_snapshot

Field Type Null Key Default Extra
snap_id int(11) NO PRI NULL auto_increment
ip_addr varchar(50) NO   NULL  
db_port varchar(100) NO   NULL  
duration int(11) YES   NULL  
start_time datetime(6) YES   NULL  
end_time datetime(6) YES   NULL  
memo varchar(500) YES   NULL  
create_time datetime(6) NO   NULL  

mysql_tab_baseline

Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
snap_id int(11) NO   NULL 快照id只作为初始状态的标识
ip_addr varchar(50) NO   NULL  
db_port varchar(50) NO   NULL  
table_schema varchar(50) NO   NULL  
table_name varchar(50) NO   NULL 只有表的最新状态信息
tab_create_time datetime(6) YES   NULL 表的创建时间
create_time datetime(6) NO   NULL 变更时间
table_comment varchar(50) NO   NULL  
table_ddl longtext NO   NULL 初始化的创建语句
memo varchar(500) NO   NULL  
table_status varchar(50) NO   NULL ACTIVE,RECYCLE,INACTIVE
avg_row_length varchar(50) NO   NULL 初始状态的数值
data_length varchar(50) NO   NULL  
index_length varchar(50) NO   NULL 初始状态的数值
tab_last_ddl_time datetime(6) YES   NULL 最新的DDL时间
tab_last_dml_time datetime(6) YES   NULL 最新的DML时间
table_collation varchar(50) NO   NULL  
table_engine varchar(50) NO   NULL  
table_row_format varchar(50) NO   NULL  
table_rows varchar(50) NO   NULL 初始状态的数值

mysql_snap_tab_info

Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
snap_id int(11) NO   NULL  
ip_addr varchar(50) NO MUL NULL  
db_port varchar(50) NO   NULL  
table_schema varchar(50) NO   NULL  
table_name varchar(50) NO   NULL  
create_time datetime(6) NO   NULL  
tab_last_ddl_time datetime(6) NO   NULL  
tab_last_dml_time datetime(6) YES   NULL  
table_engine varchar(50) NO   NULL  
table_row_format varchar(50) NO   NULL  
table_collation varchar(50) NO   NULL  
table_rows varchar(50) NO   NULL  
avg_row_length varchar(50) NO   NULL  
data_length varchar(50) NO   NULL  
index_length varchar(50) NO   NULL  
table_status varchar(50) NO   NULL  
table_ddl longtext NO   NULL  
memo varchar(500) NO   NULL  
change_sub_type varchar(50) NO   NULL  
change_type varchar(50) NO   NULL  
table_comment varchar(50) NO   NULL  

mysql_snap_tab_col_info

Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
snap_id int(11) NO   NULL  
ip_addr varchar(50) NO MUL NULL  
db_port varchar(50) NO   NULL  
table_schema varchar(50) NO   NULL  
table_name varchar(50) NO   NULL  
column_id int(11) YES   NULL  
column_name varchar(50) NO   NULL  
column_type varchar(50) NO   NULL  
column_default varchar(50) YES   NULL  
column_isnull varchar(50) NO   NULL  
create_time datetime(6) NO   NULL  
memo varchar(500) NO   NULL  

mysql_snap_tab_index_info

Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
snap_id int(11) NO   NULL  
ip_addr varchar(50) NO MUL NULL  
db_port varchar(50) NO   NULL  
table_schema varchar(50) NO   NULL  
table_name varchar(50) NO   NULL  
index_name varchar(50) NO   NULL  
column_index int(11) YES   NULL  
column_name varchar(50) NO   NULL  
column_orderby varchar(50) NO   NULL  
create_time datetime(6) NO   NULL  
memo varchar(500) NO   NULL  

mysql_snap_hot_tab_info

Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
snap_id int(11) NO   NULL  
ip_addr varchar(50) NO MUL NULL  
db_port varchar(50) NO   NULL  
table_schema varchar(50) NO   NULL  
table_name varchar(50) NO   NULL  
create_time datetime(6) NO   NULL  
tab_last_ddl_time datetime(6) NO   NULL  
tab_last_dml_time datetime(6) YES   NULL  
table_engine varchar(50) NO   NULL  
table_row_format varchar(50) NO   NULL  
table_collation varchar(50) NO   NULL  
table_rows varchar(50) NO   NULL  
avg_row_length varchar(50) NO   NULL  
data_length varchar(50) NO   NULL  
index_length varchar(50) NO   NULL  
table_status varchar(50) NO   NULL  
memo varchar(500) NO   NULL  
hot_degree int(11) NO   NULL  

 

最后明天就是教师节了,祝老师桃李满天下