MySQL 用户信息表设计:userinfo 表结构详解
MySQL 用户信息表设计:userinfo 表结构详解
本文将详细介绍 MySQL 用户信息表 userinfo 的设计结构,包括字段类型、约束、索引等,并附带示例代码,方便开发者参考学习。
表结构:
CREATE TABLE IF NOT EXISTS `userinfo`(
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '用户ID',
roles ENUM('user', 'admin') NOT NULL COMMENT '角色',
username VARCHAR(50) UNIQUE NOT NULL COMMENT '用户名',
password VARCHAR(50) NOT NULL COMMENT '密码',
email VARCHAR(100) UNIQUE NOT NULL COMMENT '邮箱',
vcode VARCHAR(10) NOT NULL COMMENT '邮箱验证码',
sex BOOLEAN DEFAULT 0 COMMENT '性别',
age TINYINT UNSIGNED COMMENT '年龄',
title VARCHAR(500) COMMENT '简介',
avatar VARCHAR(100) COMMENT '头像',
register TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
online TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上线时间',
downline TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '下线时间',
ulike INT UNSIGNED COMMENT '喜欢',
ucollect INT UNSIGNED COMMENT '收藏',
uhistory INT UNSIGNED COMMENT '历史记录',
ip VARCHAR(15) COMMENT 'IP地址',
is_delete BOOLEAN DEFAULT 0 COMMENT '是否注销,默认否',
feedback INT UNSIGNED COMMENT '反馈',
system_msg INT UNSIGNED COMMENT '系统消息',
is_talk BOOLEAN DEFAULT 0 COMMENT '是否禁言',
warning TINYINT UNSIGNED COMMENT '警告次数',
ucomment INT UNSIGNED COMMENT '我的评论',
article INT UNSIGNED COMMENT '我的文章',
INDEX idx_username (username),
INDEX idx_email (email),
INDEX idx_register (register)
) ENGINE=INNODB DEFAULT CHARSET=UTF8;
字段说明:
- id: 用户ID,INT UNSIGNED 类型,自增主键,不可为空。
- roles: 用户角色,ENUM('user', 'admin') 类型,不可为空,默认值为 'user'。
- username: 用户名,VARCHAR(50) 类型,不可为空,唯一索引。
- password: 密码,VARCHAR(50) 类型,不可为空。
- email: 邮箱地址,VARCHAR(100) 类型,不可为空,唯一索引。
- vcode: 邮箱验证码,VARCHAR(10) 类型,不可为空。
- sex: 性别,BOOLEAN 类型,默认值为 0,表示未知性别。
- age: 年龄,TINYINT UNSIGNED 类型,可选。
- title: 简介,VARCHAR(500) 类型,可选。
- avatar: 头像,VARCHAR(100) 类型,可选。
- register: 注册时间,TIMESTAMP 类型,不可为空,默认值为当前时间。
- online: 上线时间,TIMESTAMP 类型,不可为空,默认值为当前时间。
- downline: 下线时间,TIMESTAMP 类型,不可为空,默认值为当前时间。
- ulike: 喜欢数,INT UNSIGNED 类型,可选。
- ucollect: 收藏数,INT UNSIGNED 类型,可选。
- uhistory: 历史记录数,INT UNSIGNED 类型,可选。
- ip: IP 地址,VARCHAR(15) 类型,可选。
- is_delete: 是否注销,BOOLEAN 类型,默认值为 0,表示未注销。
- feedback: 反馈数,INT UNSIGNED 类型,可选。
- system_msg: 系统消息数,INT UNSIGNED 类型,可选。
- is_talk: 是否禁言,BOOLEAN 类型,默认值为 0,表示未禁言。
- warning: 警告次数,TINYINT UNSIGNED 类型,可选。
- ucomment: 我的评论数,INT UNSIGNED 类型,可选。
- article: 我的文章数,INT UNSIGNED 类型,可选。
索引说明:
- PRIMARY KEY(id,username): 主键索引,由 id 和 username 组成,保证数据唯一性。
- INDEX idx_username (username): 索引用户名,提高查询效率。
- INDEX idx_email (email): 索引邮箱地址,提高查询效率。
- INDEX idx_register (register): 索引注册时间,提高查询效率。
注意事项:
- 该表结构仅供参考,开发者可以根据实际需求进行调整。
- 建议使用更安全的密码存储方式,例如哈希加密。
- 在实际开发中,需要考虑用户隐私安全问题,对敏感信息进行加密处理。
希望本文能够帮助开发者更好地理解 MySQL 用户信息表的设计,并顺利完成相关开发工作。
原文地址: https://www.cveoy.top/t/topic/qg4U 著作权归作者所有。请勿转载和采集!