chengzhnag数据库下users表结构
zgrowth 7/30/2025
# Users 用户表结构文档
# 表基本信息
- 表名: users
- 用途: 存储系统用户信息
- 数据库: SQLite
# 字段说明
字段名 | 数据类型 | 允许空值 | 主键 | 唯一约束 | 默认值 | 说明 |
---|---|---|---|---|---|---|
id | INTEGER | NO | YES | NO | AUTOINCREMENT | 用户唯一标识符,主键 |
account | TEXT | NO | NO | YES | 无 | 用户账号,用于登录,唯一 |
password | TEXT | NO | NO | NO | 无 | 用户密码(加密存储) |
name | TEXT | NO | NO | NO | 无 | 用户显示名称 |
role | TEXT | NO | NO | NO | 'normal' | 用户角色:'admin'-管理员,'normal'-普通用户 |
created_at | TEXT | YES | NO | NO | datetime('now', 'localtime') | 创建时间 |
updated_at | TEXT | YES | NO | NO | datetime('now', 'localtime') | 更新时间 |
extra_data | TEXT | YES | NO | NO | NULL | 扩展数据(JSON格式字符串) |
# SQL创建语句
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
account TEXT NOT NULL UNIQUE,
password TEXT NOT NULL,
name TEXT NOT NULL,
role TEXT NOT NULL DEFAULT 'normal',
created_at TEXT DEFAULT (datetime('now', 'localtime')),
updated_at TEXT DEFAULT (datetime('now', 'localtime')),
extra_data TEXT
);
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 字段详细说明
# 1. id
- 类型: INTEGER
- 约束: PRIMARY KEY, AUTOINCREMENT
- 说明: 用户唯一标识符,系统自动生成
# 2. account
- 类型: TEXT
- 约束: NOT NULL, UNIQUE
- 说明: 用户登录账号,必须唯一,建议使用字母数字组合
# 3. password
- 类型: TEXT
- 约束: NOT NULL
- 说明: 用户密码,必须经过加密存储(建议使用bcrypt等加密算法)
# 4. name
- 类型: TEXT
- 约束: NOT NULL
- 说明: 用户显示名称,用于界面展示
# 5. role
- 类型: TEXT
- 约束: NOT NULL
- 默认值: 'normal'
- 说明: 用户角色标识
- 'admin': 系统管理员
- 'normal': 普通用户
- 可扩展其他角色类型
# 6. created_at
- 类型: TEXT
- 约束: 可为空
- 默认值: 当前时间戳
- 说明: 记录用户创建时间
# 7. updated_at
- 类型: TEXT
- 约束: 可为空
- 默认值: 当前时间戳
- 说明: 记录用户信息最后更新时间
# 8. extra_data
- 类型: TEXT
- 约束: 可为空
- 说明: 用户扩展信息,存储JSON格式字符串,可包含如部门、职位、联系方式等信息
# 使用示例
# 插入数据
INSERT INTO users (account, password, name, role, extra_data)
VALUES ('admin', '$2y$10$encrypted_password_hash', '系统管理员', 'admin', '{"department": "技术部", "phone": "13800138000"}');
1
2
2
# 查询数据
-- 根据账号查询
SELECT * FROM users WHERE account = 'admin';
-- 查询管理员用户
SELECT * FROM users WHERE role = 'admin';
-- 查询用户基本信息
SELECT id, account, name, role FROM users WHERE account = 'admin';
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 更新数据
-- 更新用户信息和更新时间
UPDATE users SET name = '新名称', updated_at = datetime('now', 'localtime') WHERE account = 'admin';
1
2
2
# 注意事项
- 密码安全: 密码必须加密存储,不可明文保存
- 账号唯一: account字段具有唯一约束,不可重复
- 时间字段: created_at和updated_at字段由系统自动维护
- 扩展字段: extra_data字段存储JSON字符串,应用层需进行序列化/反序列化处理
- 角色扩展: role字段为字符串类型,便于后续添加新的角色类型