005_create_users_table.sql 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. -- 迁移文件: 004_create_users_table.sql
  2. -- 描述: 创建用户信息表
  3. -- 基于个人中心页面需求生成
  4. -- ============================================
  5. -- 正向迁移: 创建表和索引
  6. -- ============================================
  7. -- 创建users表
  8. CREATE TABLE IF NOT EXISTS users (
  9. id VARCHAR(50) PRIMARY KEY,
  10. nickname VARCHAR(100) NOT NULL,
  11. phone VARCHAR(20),
  12. email VARCHAR(255),
  13. avatar TEXT,
  14. apikey VARCHAR(255),
  15. registration_date DATE,
  16. created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
  17. updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
  18. );
  19. -- 添加表注释
  20. COMMENT ON TABLE users IS '用户信息表';
  21. COMMENT ON COLUMN users.id IS '账号ID(主键)';
  22. COMMENT ON COLUMN users.nickname IS '昵称';
  23. COMMENT ON COLUMN users.phone IS '手机号';
  24. COMMENT ON COLUMN users.email IS '邮箱';
  25. COMMENT ON COLUMN users.avatar IS '头像URL';
  26. COMMENT ON COLUMN users.apikey IS 'API密钥,用于API调用认证';
  27. COMMENT ON COLUMN users.registration_date IS '注册时间';
  28. COMMENT ON COLUMN users.created_at IS '创建时间';
  29. COMMENT ON COLUMN users.updated_at IS '更新时间';
  30. -- 创建索引(优化查询性能)
  31. CREATE INDEX IF NOT EXISTS idx_users_phone ON users(phone);
  32. CREATE INDEX IF NOT EXISTS idx_users_email ON users(email);
  33. CREATE INDEX IF NOT EXISTS idx_users_apikey ON users(apikey);
  34. -- ============================================
  35. -- 回滚迁移: 删除表和索引
  36. -- ============================================
  37. -- DROP INDEX IF EXISTS idx_users_apikey;
  38. -- DROP INDEX IF EXISTS idx_users_email;
  39. -- DROP INDEX IF EXISTS idx_users_phone;
  40. -- DROP TABLE IF EXISTS users;