首页 > 数据库 >Mysql常见的数据表类型

Mysql常见的数据表类型

时间:2023-02-28 23:58:59浏览次数:48  
标签:COMMENT varchar DEFAULT 常见 数据表 user Mysql NULL id

明细表

明细表/详情表比较常用。一般会有一张带有 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

相关文章

  • MySQL的RR和RC事务隔离级别加锁类型验证
    先上结轮:MySQL5.7数据库Innodb引擎在默认的REPEATABLE-READ(RR)事务隔离级别时,事务更新操作对于where条件锁定的范围加的是Next-KeyLock即临键间隙锁,对于确切条件......
  • mysql字符串等值查询中条件字段值末尾有空格也能查到数据问题
    一、事故还原我们仍然使用学生信息表,但是我们只需要保留两个字段即可:CREATETABLE`student_info`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`name......
  • mysql 索引知识梳理
    mysql索引知识梳理如果说数据是字典的话,索引就是字典的目录。mysql常用的索引有两种B-Tree(实际上是B+Tree),和Hash,默认是前者(实际上InnoDB只支持BTree)哪些列适合创建......
  • Go从入门到精通——在Go官方学习字符串的常见操作
    常见字符串操作https://pkg.go.dev/stringsGoVersion:1.20.1一、概要PackagestringsimplementssimplefunctionstomanipulateUTF-8encodedstrings.(Package......
  • mysql忘记密码
    mysql是在三年前下载的,但是此时密码忘记了,又不想卸载后重新安装,此时需要重置密码.①netstopMySQL80(这个SQL根据服务中SQL的名称填写,网上大部分都是sql,我发......
  • mysql数据库的主主复制和半同步复制
    今天分享的是mysql数据库的主主复制和半同步复制的一系列步骤,以及在各处出现错误的解决方法和其在操作过程中需要注意的地方范例:主主复制主主复制:两个节点,都可以更新数据,并......
  • MySQL参数优化之thread_cache_size
    1.thread_cache_size简介每建立一个连接,都需要一个线程来与之匹配,此参数用来缓存空闲的线程,以至不被销毁,如果线程缓存中有空闲线程,这时候如果建立新连接,MYSQL就会很快的响应......
  • 控制台安装虚拟环境常见指令和用法
    查看conda信息(版本,安装位置等等)condainfo创建一个新的虚拟环境condacreate-nyour_env_namecondacreate-nyour_env_namepython=3.9.2(带python版本的创建)激......
  • 路飞项目使用mysql数据库详细讲解
    目录一、首先需要彻底删除原有的数据库步骤二、去官网下载mysql步骤三、安装mysql数据库步骤四、一管理员身份进去cmd进行一系列命令启动五、接下来为路飞项目创建数据库六......
  • 高并发场景下常见的限流算法及方案介绍
    作者:京东科技康志兴应用场景现代互联网很多业务场景,比如秒杀、下单、查询商品详情,最大特点就是高并发,而往往我们的系统不能承受这么大的流量,继而产生了很多的应对措施:CD......