045_create_platform_api_key_table.sql 1.7 KB

1234567891011121314151617181920212223242526272829303132
  1. -- 创建平台API Key表
  2. -- 用于存储用户的平台API Key,支持开放平台API调用认证
  3. -- 需求: 7.7 - API Key使用SHA256哈希算法存储
  4. CREATE TABLE IF NOT EXISTS aigcspace.platform_api_key (
  5. id SERIAL PRIMARY KEY,
  6. user_id VARCHAR(50) NOT NULL REFERENCES aigcspace.users(id) ON DELETE CASCADE,
  7. api_key VARCHAR(100) NOT NULL,
  8. api_key_prefix VARCHAR(20) NOT NULL,
  9. name VARCHAR(100),
  10. status VARCHAR(20) NOT NULL DEFAULT 'active',
  11. last_used_at TIMESTAMP,
  12. created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  13. updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
  14. );
  15. -- 添加字段注释
  16. COMMENT ON TABLE aigcspace.platform_api_key IS '平台API Key表';
  17. COMMENT ON COLUMN aigcspace.platform_api_key.id IS '主键ID';
  18. COMMENT ON COLUMN aigcspace.platform_api_key.user_id IS '用户ID';
  19. COMMENT ON COLUMN aigcspace.platform_api_key.api_key IS 'API Key(SHA256哈希存储)';
  20. COMMENT ON COLUMN aigcspace.platform_api_key.api_key_prefix IS 'API Key前缀用于显示(如sk-aigc-xxxx...xxxx)';
  21. COMMENT ON COLUMN aigcspace.platform_api_key.name IS '备注名称';
  22. COMMENT ON COLUMN aigcspace.platform_api_key.status IS '状态:active-启用,disabled-禁用';
  23. COMMENT ON COLUMN aigcspace.platform_api_key.last_used_at IS '最后使用时间';
  24. COMMENT ON COLUMN aigcspace.platform_api_key.created_at IS '创建时间';
  25. COMMENT ON COLUMN aigcspace.platform_api_key.updated_at IS '更新时间';
  26. -- 创建索引
  27. CREATE INDEX idx_platform_api_key_user_id ON aigcspace.platform_api_key(user_id);
  28. CREATE INDEX idx_platform_api_key_api_key ON aigcspace.platform_api_key(api_key);
  29. CREATE INDEX idx_platform_api_key_status ON aigcspace.platform_api_key(status);