postgersql.sql 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. -- CREATE DATABASE serve;
  2. -- USE serve;
  3. -- 创建 schema(如果不存在)
  4. CREATE SCHEMA IF NOT EXISTS dev;
  5. -- 删除序列(如果存在)
  6. -- DROP SEQUENCE IF EXISTS dev.user_id_seq;
  7. -- 创建新序列
  8. -- CREATE SEQUENCE dev.user_id_seq
  9. -- START WITH 1
  10. -- INCREMENT BY 1
  11. -- NO MINVALUE
  12. -- NO MAXVALUE
  13. -- CACHE 1;
  14. -- 添加注释
  15. -- COMMENT ON SEQUENCE dev.user_seq IS '用户表ID序列';
  16. DROP TABLE IF EXISTS dev.user;
  17. -- 在 dev schema 下创建用户表
  18. CREATE TABLE dev.user (
  19. id SERIAL PRIMARY KEY,
  20. account VARCHAR(50) NOT NULL UNIQUE,
  21. password VARCHAR(255) NOT NULL,
  22. username VARCHAR(100) NOT NULL,
  23. role VARCHAR(20) NOT NULL DEFAULT 'user' CHECK ( role IN ('user','expert','admin') ),
  24. avatar TEXT,
  25. phone_number char(11),
  26. enable INT NOT NULL DEFAULT 1,
  27. delete_flag INT NOT NULL DEFAULT 0
  28. );
  29. -- 添加注释
  30. COMMENT ON TABLE dev.user IS '用户表';
  31. COMMENT ON COLUMN dev.user.id IS '用户ID,自增主键';
  32. COMMENT ON COLUMN dev.user.account IS '账号,唯一';
  33. COMMENT ON COLUMN dev.user.password IS '密码';
  34. COMMENT ON COLUMN dev.user.username IS '用户名';
  35. COMMENT ON COLUMN dev.user.role IS '角色';
  36. COMMENT ON COLUMN dev.user.avatar IS '头像URL';
  37. COMMENT ON COLUMN dev.user.phone_number IS '手机号码';
  38. COMMENT ON COLUMN dev.user.enable IS '是否启用';
  39. COMMENT ON COLUMN dev.user.delete_flag IS '删除标记';
  40. -- 创建索引
  41. CREATE INDEX idx_user_account ON dev.user(account);
  42. CREATE INDEX idx_user_role ON dev.user(role);
  43. CREATE INDEX idx_user_enable ON dev.user(enable);
  44. CREATE INDEX idx_user_delete_flag ON dev.user(delete_flag);