跳转至

数据库设计文档

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 用户名,用于登录和识别
email 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", 
    ......
]