数据库设计文档
fy_info
描述:软件信息表,用于存储软件的各种配置信息,每个键值对表示一条记录。
数据列
列名 | 数据类型 | 约束 | 描述 | 是否为空 | 键约束 | 级联修改 | 级联删除 |
---|---|---|---|---|---|---|---|
id | char(36) | PRIMARY KEY | 主键,全局唯一标识符 | 否 | fy_info_pk | ||
key | varchar | NOT NULL | 键,用于唯一标识信息项 | 否 | |||
value | varchar | NOT NULL | 值,存储对应键的具体信息 | 否 | |||
updated_at | timestamp | DEFAULT now() | 数据更新时间,自动设置为当前时间 | 否 |
索引
- fy_info_key_uindex:
key
列的唯一索引,确保每个键的值在整个表中是唯一的
fy_permission
描述:权限表,用于存储系统中的各种操作权限,每个权限项由一个唯一的标识符和描述组成。
数据列
列名 | 数据类型 | 约束 | 描述 | 是否为空 | 键约束 | 级联修改 | 级联删除 |
---|---|---|---|---|---|---|---|
pid | bigserial | PRIMARY KEY | 主键,自增,用于唯一标识权限 | 否 | fy_permission_pk | ||
permission | varchar | NOT NULL | 权限字段,表示具体的操作或功能 | 否 | |||
description | varchar | NOT NULL | 权限描述,详细说明权限的含义和作用 | 否 |
索引
- fy_permission_permission_uindex:
permission
列的唯一索引,确保每个权限的名称在整个表中是唯一的
fy_role
描述:角色表,用于定义系统中的用户角色,每个角色有自己的名称、展示名、描述以及关联的权限。
数据列
列名 | 数据类型 | 约束 | 描述 | 是否为空 | 键约束 | 级联修改 | 级联删除 |
---|---|---|---|---|---|---|---|
ruuid | varchar(32) | PRIMARY KEY | 主键,用于唯一标识角色 | 否 | fy_role_pk | ||
name | varchar(30) | NOT NULL | 角色名字,用于内部识别 | 否 | |||
display_name | varchar(30) | NOT NULL | 展示名字,用于用户界面显示 | 否 | |||
description | varchar | NOT NULL | 角色描述,详细说明角色的功能和权限 | 否 | |||
permissions | varchar | NOT NULL | 角色权限,以逗号分隔的权限列表 | 否 | |||
updated_at | timestamp | DEFAULT now() | 更新时间,自动设置为当前时间 | 否 |
索引
- fy_role_role_uindex:
name
列的唯一索引,确保每个角色的名称在整个表中是唯一的
fy_user
描述:用户表,存储用户的基本信息、联系信息、角色、会员状态以及验证状态。
数据列
列名 | 数据类型 | 约束 | 描述 | 是否为空 | 键约束 | 级联修改 | 级联删除 |
---|---|---|---|---|---|---|---|
uuid | varchar(32) | PRIMARY KEY | 用户主键,用于唯一标识用户 | 否 | fy_user_pk | ||
username | varchar(40) | NOT NULL | 用户名,用于登录和识别 | 否 | |||
varchar(100) | NOT NULL | 邮箱,唯一,用于用户身份验证 | 否 | email_uindex | |||
phone | varchar(11) | NOT NULL | 手机号码,唯一,用于用户身份验证 | 否 | phone_uindex | ||
password | varchar(60) | NOT NULL | 密码,存储加密后的密码 | 否 | |||
old_password | varchar(60) | 旧密码,用于密码重置 | 是 | ||||
avatar | varchar(64) | 头像(非地址) | 是 | ||||
otp_auth | varchar(32) | NOT NULL | 2FA-OTPAuth,用于二次验证 | 否 | |||
mail_verify | boolean | DEFAULT false | 邮箱验证状态 | 否 | |||
phone_verify | boolean | DEFAULT false | 手机验证状态 | 否 | |||
basic_information | varchar | NOT NULL | 基础信息,可能包含 JSON 格式数据 | 否 | |||
role | varchar(32) | FOREIGN KEY | 用户角色,引用 fy_role 表的 ruuid | 否 | user_fk | cascade | set_null |
vip | varchar(32) | FOREIGN KEY | 付费会员,引用 fy_vip 表的 vuuid | 是 | vip_fk | cascade | set_null |
created_at | timestamp | DEFAULT now() | 创建时间 | 否 | |||
updated_at | timestamp | 修改时间 | 是 |
外键约束
- fy_user_fy_role_ruuid_fk:
role
列引用fy_role
表的ruuid
列,更新时级联,删除时设置为 NULL - fy_user_fy_vip_vuuid_fk:
vip
列引用fy_vip
表的vuuid
列,更新时级联,删除时设置为 NULL
索引
- email_uindex:
email
列的唯一索引 - otp_auth_uindex:
otp_auth
列的唯一索引 - phone_uindex:
phone
列的唯一索引 - username_uindex:
username
列的唯一索引
数据结构
basic_information
{
userQQ: "1144939537",
userWechat: "xiao_lfeng",
[等待完善]......
}
fy_vip
描述:付费会员表,存储付费会员的详细信息,包括名称、展示名、价格以及描述。
数据列
列名 | 数据类型 | 约束 | 描述 | 是否为空 | 键约束 | 级联修改 | 级联删除 |
---|---|---|---|---|---|---|---|
vuuid | varchar(32) | PRIMARY KEY | 会员主键,用于唯一标识会员 | 否 | fy_vip_pk | ||
name | varchar(30) | NOT NULL | 会员名称,用于内部识别 | 否 | |||
display_name | varchar(30) | NOT NULL | 展示名字,用于用户界面显示 | 否 | |||
price | decimal(10, 2) | NOT NULL | 价格,单位为货币单位,如元或美元 | 否 | |||
description | varchar | NOT NULL | 会员描述,详细说明会员的权益和服务 | 否 | |||
updated_at | timestamp | DEFAULT now() | 更新时间,自动设置为当前时间 | 否 |
索引
- fy_vip_name_uindex:
name
列的唯一索引,确保每个会员的名称在整个表中是唯一的
fy_document
描述:文档表,用于存储用户创建的文档,包括文档的 UUID、用户关联、类型、密码、合作者、格式以及创建和修改时间。
数据列
列名 | 数据类型 | 约束 | 描述 | 是否为空 | 键约束 | 级联修改 | 级联删除 |
---|---|---|---|---|---|---|---|
doc_uuid | varchar(32) | PRIMARY KEY | 文档表 UUID,对应 BOS 文档 UUID | 否 | fy_document_pk | ||
uuid | varchar(32) | FOREIGN KEY | 所属用户,引用 fy_user 表的 uuid | 否 | fy_document_fy_user_uuid_fk | cascade | cascade |
type | smallint | NOT NULL | 类型,0:私有,1:链接私有(需要Key),2:公开 | 否 | |||
key | varchar(64) | 文档密码,用于私有文档访问控制 | 否 | ||||
cooperation | varchar | 合作者,JSON 存储用户 UUID 列表 | 否 | ||||
suffix | varchar(20) | DEFAULT 'md' | 文档格式,如.md、.docx等 | 否 | |||
created_at | timestamp | DEFAULT now() | 创建时间 | 否 | |||
updated_at | timestamp | 修改时间 | 是 |
外键约束
- fy_document_fy_user_uuid_fk:
uuid
列引用fy_user
表的uuid
列,更新和删除时级联
数据结构
cooperation
描述: 存储合作者的 JSON 列,每个元素是用户 UUID
[
"b534e8a823253ec08cbb155d680240f2",
"b534e8a823253ec08cbb155a864f25db",
......
]