用户与管理员
源码:src/backend/db/models/user.py、user_model.py
返回 总览
字段表格式:字段 | 中文名 | 类型 | 可空 | 作用
ER
erDiagram
users ||--o{ subscriptions : has
users ||--o{ usage_quotas : has
users ||--o{ user_models : has
users ||--o| admin_users : optional_link
users ||--o{ users : master_sub
member_plans ||--o{ subscriptions : plan
agents ||--o{ subscriptions : attribution
users — C 端用户
| 字段 |
中文名 |
类型 |
可空 |
作用 |
| id |
用户 ID |
UUID |
NO |
主键 |
| phone |
手机号 |
String(20) |
YES |
登录标识,全局唯一;可空以支持仅邮箱注册 |
| email |
邮箱 |
String(100) |
YES |
登录标识,全局唯一 |
| password_hash |
密码哈希 |
String(255) |
YES |
密码登录预留;短信登录场景可为空 |
| nickname |
昵称 |
String(50) |
YES |
展示用用户名 |
| avatar_url |
头像地址 |
String(500) |
YES |
头像图片 URL |
| invite_code |
邀请码 |
String(20) |
YES |
人人可分享(非代理资格);唯一;与 agents.agent_code 分开 |
| master_user_id |
主账号 ID |
UUID |
YES |
FK→users.id SET NULL;空=主账号,非空=子账号;有索引 |
| status |
账号状态 |
SmallInteger |
NO |
0=禁用 1=正常;默认 1 |
| last_login_at |
最近登录时间 |
timestamptz |
YES |
记录最近一次成功登录时刻 |
| last_login_ip |
最近登录 IP |
String(45) |
YES |
IPv4/IPv6 登录来源 |
| created_at |
创建时间 |
timestamptz |
NO |
行创建时间 |
| updated_at |
更新时间 |
timestamptz |
NO |
行最后修改时间 |
| deleted_at |
删除时间 |
timestamptz |
YES |
软删标记;非空表示已删除 |
admin_users — 后台管理员
独立鉴权表,Admin 登录只查此表。
| 字段 |
中文名 |
类型 |
可空 |
作用 |
| id |
管理员 ID |
UUID |
NO |
主键 |
| user_id |
关联 C 端用户 |
UUID |
YES |
FK→users.id SET NULL;可选绑定同一人的 C 端账号 |
| phone |
手机号 |
String(20) |
NO |
短信登录账号,全局唯一 |
| name |
显示名称 |
String(50) |
YES |
后台展示姓名 |
| is_super_admin |
是否超管 |
Boolean |
NO |
超管拥有全部后台权限;默认 false |
| is_active |
是否启用 |
Boolean |
NO |
false 时禁止登录;默认 true |
| created_at |
创建时间 |
timestamptz |
NO |
行创建时间 |
| updated_at |
更新时间 |
timestamptz |
NO |
行最后修改时间 |
subscriptions — 用户订阅
| 字段 |
中文名 |
类型 |
可空 |
作用 |
| id |
订阅 ID |
UUID |
NO |
主键 |
| user_id |
用户 ID |
UUID |
NO |
FK→users.id CASCADE;订阅归属用户 |
| plan_type |
方案类型 |
String(50) |
NO |
订阅方案业务类型标识 |
| plan_id |
会员方案 ID |
UUID |
YES |
FK→member_plans.id;具体档位 |
| agent_id |
归因代理 ID |
UUID |
YES |
FK→agents.id SET NULL;下单/绑定时归因代理商 |
| status |
订阅状态 |
SmallInteger |
NO |
0=失效 1=有效;开通新订阅会将旧订阅置 0;默认 1 |
| started_at |
生效时间 |
timestamptz |
NO |
订阅开始时间 |
| expires_at |
到期时间 |
timestamptz |
YES |
按 billing_cycle 自然历推算;月末对齐;once 可空 |
| created_at |
创建时间 |
timestamptz |
NO |
行创建时间 |
| updated_at |
更新时间 |
timestamptz |
NO |
行最后修改时间 |
usage_quotas — 使用配额
| 字段 |
中文名 |
类型 |
可空 |
作用 |
| id |
配额 ID |
UUID |
NO |
主键 |
| user_id |
用户 ID |
UUID |
NO |
FK→users.id CASCADE |
| quota_type |
配额类型 |
String(50) |
NO |
常见:generation(生图点,六桶镜像)/ storage(字节) |
| total |
总量 |
BigInteger |
NO |
generation 应对齐六桶合计;存储以字节计 |
| used |
已用量 |
BigInteger |
NO |
已消耗量;扣费/占用后递增 |
| reset_at |
重置时间 |
timestamptz |
YES |
下次周期重置时间点 |
| created_at |
创建时间 |
timestamptz |
NO |
行创建时间 |
| updated_at |
更新时间 |
timestamptz |
NO |
行最后修改时间 |
user_models — 用户自定义模特
| 字段 |
中文名 |
类型 |
可空 |
作用 |
| id |
模特 ID |
UUID |
NO |
主键 |
| user_id |
用户 ID |
UUID |
NO |
FK→users.id CASCADE;归属用户 |
| name |
模特名称 |
String(100) |
NO |
展示名称 |
| description |
描述 |
Text |
YES |
补充说明 |
| image_url |
参考图地址 |
String(500) |
YES |
模特参考图 URL |
| gender |
性别 |
String(20) |
YES |
生图属性提示 |
| is_active |
是否启用 |
Boolean |
NO |
false 时不可选;默认 true |
| sort_order |
排序 |
SmallInteger |
NO |
列表排序,越小越靠前 |
| created_at |
创建时间 |
timestamptz |
NO |
行创建时间 |
| updated_at |
更新时间 |
timestamptz |
NO |
行最后修改时间 |
| deleted_at |
删除时间 |
timestamptz |
YES |
软删标记 |