create_wechat_users.sql 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. -- 微信用户表DDL脚本
  2. -- 用于存储微信注册登录用户信息
  3. create table public.wechat_users
  4. (
  5. id serial
  6. primary key,
  7. openid varchar(255) not null unique,
  8. phone_number varchar(20),
  9. id_card_number varchar(18),
  10. login_status boolean default false not null,
  11. login_time timestamp with time zone,
  12. user_status varchar(20) default 'active' not null,
  13. created_at timestamp with time zone default current_timestamp not null,
  14. updated_at timestamp with time zone default current_timestamp not null
  15. );
  16. comment on table public.wechat_users is '微信用户信息表';
  17. comment on column public.wechat_users.id is '主键ID';
  18. comment on column public.wechat_users.openid is '微信用户openid,唯一标识';
  19. comment on column public.wechat_users.phone_number is '用户手机号码';
  20. comment on column public.wechat_users.id_card_number is '用户身份证号码';
  21. comment on column public.wechat_users.login_status is '当前登录状态,true表示已登录,false表示未登录';
  22. comment on column public.wechat_users.login_time is '最后登录时间';
  23. comment on column public.wechat_users.user_status is '用户账户状态:active-活跃,inactive-非活跃,suspended-暂停,deleted-已删除';
  24. comment on column public.wechat_users.created_at is '账户创建时间';
  25. comment on column public.wechat_users.updated_at is '信息更新时间';
  26. -- 创建索引以提高查询性能
  27. create index idx_wechat_users_openid on public.wechat_users(openid);
  28. create index idx_wechat_users_phone_number on public.wechat_users(phone_number);
  29. create index idx_wechat_users_login_status on public.wechat_users(login_status);
  30. create index idx_wechat_users_user_status on public.wechat_users(user_status);
  31. -- 创建更新时间触发器函数
  32. create or replace function update_updated_at_column()
  33. returns trigger as $$
  34. begin
  35. new.updated_at = current_timestamp;
  36. return new;
  37. end;
  38. $$ language plpgsql;
  39. -- 为表添加更新时间触发器
  40. create trigger update_wechat_users_updated_at
  41. before update on public.wechat_users
  42. for each row
  43. execute function update_updated_at_column();