数据库设计——表格必不可少的四个字段!
摘要:本节我们将讨论数据库设计中的表设计。无论是什么业务表,最先设计这四个字段,它们能解决80%的数据追踪问题:1. id:主键,使用BIGINT类型并设置AUTO_INCREMENT自增。它是记录的唯一标识,永远不要用业务字段(如手机号)做主键。2. create_time:创建时间,设为datetim…
本节我们将讨论数据库设计中的表设计。无论是什么业务表,最先设计这四个字段,它们能解决80%的数据追踪问题:
1. id:主键,使用BIGINT类型并设置AUTO_INCREMENT自增。它是记录的唯一标识,永远不要用业务字段(如手机号)做主键。
2. create_time:创建时间,设为datetime类型,默认值设为CURRENT_TIMESTAMP。记录何时插入。
3. update_time:更新时间,同样设为datetime类型,默认值设为CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。记录最后修改时间,数据库会自动更新它。
4. is_deleted:逻辑删除标志,使用tinyint类型,默认值为0(表示未删除)。删除时将其更新为1,而不是真的DELETE数据。这能避免误删,也方便数据恢复。
比如我们要设计一张表记录用户,目前我们就考虑到了姓名、密码和性别,然后我们就可以无脑直接选择添加这4个必填字段!
CREATE TABLE `user` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', `name` VARCHAR(50) NOT NULL COMMENT '用户姓名', `password` VARCHAR(255) NOT NULL COMMENT '密码(建议存储加密后的密文)', `gender` TINYINT DEFAULT NULL COMMENT '性别:0-未知,1-男,2-女', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `is_deleted` TINYINT DEFAULT 0 COMMENT '是否删除:0-否,1-是', PRIMARY KEY (`id`), KEY `idx_name` (`name`) COMMENT '姓名查询索引' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
通过DESC查询表格结构基本就是这样:





