明细表
明细表/详情表比较常用。一般会有一张带有 id 的主表,比如 tt_order,主键为 id,字段比较少。
明细表/详情表 tt_order_detail ,存放了大量的明细字段,有一个字段 order_id,通过这个字段去关联主表。
关系表
比如现在有一张用户表 tt_user,还有一张角色表 tt_role,这时可以设计一张 用户角色关系表 tt_user_role。
常见的关系有一对一,一对多,多对多。
CREATE TABLE `tt_user_role` (
`id` int NOT NULL COMMENT '主键',
`user_id` varchar(20) NOT NULL DEFAULT '' COMMENT '用户id',
`role_id` varchar(20) NOT NULL DEFAULT '' COMMENT '角色id',
PRIMARY KEY (`id`),
UNIQUE KEY `uni_user_role` (`user_id`,`role_id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户角色关系表'
记录表
CREATE TABLE `tt_record` (
`id` int NOT NULL COMMENT '主键',
`handle_user_id` varchar(20) NOT NULL DEFAULT '' COMMENT '处理人工号',
`handle_user_name` varchar(128) DEFAULT '' COMMENT '处理人姓名',
`handle_node` varchar(50) DEFAULT '' COMMENT '处理节点',
`handle_note` varchar(256) DEFAULT '' COMMENT '处理详情',
`handle_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录时间',
PRIMARY KEY (`id`),
KEY `idx_handle_user_id` (`handle_user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='记录表'
关键的业务逻辑,加上一个record 轨迹记录。出了问题,方便溯源。
历史表
历史表,跟主表的数据表结构一样。
主表只保存最近一个月的数据,其他的数据放到历史表。也就是数据"冷热分离"
数据量不大时,可以通过 UNION ALL 联合主表和历史表进行查询。
配置表
CREATE TABLE `ts_system_config` (
`id` int NOT NULL COMMENT '主键',
`config_key` varchar(128) NOT NULL COMMENT '配置的KEY',
`config_value` varchar(2000) DEFAULT '' COMMENT '配置的值',
`description` varchar(100) DEFAULT '' COMMENT '描述',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_delete` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除:0-否;1-是',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_config_key` (`config_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统配置表'
通过配置表,灵活的配置。
某些经常变更的参数值,加上配置。比如 订单30分钟后失效,需求变更,要改为15分钟,那么直接改配置表就行了,不用发版。
某些关键的容易出错的逻辑,加上一个开关,也就是 config_value为 0或1,为1表示打开,为0表示关掉。
不需要的逻辑,可以及时用开关关掉。
开发环境,逻辑复杂,造数据麻烦时,也可以用开关,把前置条件关掉,方便验证数据。
标签:COMMENT,varchar,DEFAULT,常见,数据表,user,Mysql,NULL,id From: https://www.cnblogs.com/expiator/p/17166545.html