数据库设计
了解 DeepTrans Studio 的数据库架构和表结构设计
数据库概述
DeepTrans Studio 使用 PostgreSQL 作为主数据库,通过 Prisma ORM 进行数据访问和管理。数据库设计支持多租户、用户权限、项目管理和翻译工作流等核心功能。
技术栈
数据库相关技术选型:
PostgreSQL
主数据库,存储用户、项目、文档、词典、翻译记忆等结构化数据
Prisma ORM
类型安全的 ORM,提供数据库访问、迁移管理和类型生成
Redis
缓存和任务队列,用于存储临时数据和 BullMQ 任务队列
Milvus
向量数据库,用于翻译记忆的向量检索和语义搜索
MinIO
对象存储,存储文档文件、解析产物、静态资源等
核心数据模型
数据库中的主要数据模型:
1
User(用户)
用户账户信息,支持多租户和角色管理
关键字段:
id
email
name
role
tenantId
关联关系:
projects
documents
dictionaries
translationMemories
2
Tenant(租户)
多租户支持,组织级别的数据隔离
关键字段:
id
name
description
关联关系:
users
projects
dictionaries
translationMemories
3
Project(项目)
翻译项目,包含项目基本信息和语言设置
关键字段:
id
name
domain
sourceLanguage
targetLanguage
关联关系:
documents
projectDictionaries
projectMemories
4
Document(文档)
项目中的文档,存储文档元数据和文件信息
关键字段:
id
name
originalName
url
status
structured
关联关系:
documentItems
project
💡 structured 字段存储 JSON 格式的解析产物信息
5
DocumentItem(文档项)
文档中的段落/片段,是翻译的基本单位
关键字段:
id
documentId
order
sourceText
targetText
status
type
关联关系:
document
translationStageTimelines
💡 包含各阶段的中间结果(preTranslateTerms、qualityAssureSyntax 等)
6
Dictionary(词典)
术语词典,支持公共、项目和私有三种可见性
关键字段:
id
name
domain
visibility
tenantId
userId
关联关系:
entries
projectBindings
7
DictionaryEntry(词典条目)
词典中的术语对照
关键字段:
id
sourceText
targetText
notes
dictionaryId
关联关系:
dictionary
8
TranslationMemory(翻译记忆库)
翻译记忆库,存储源文-译文对照
关键字段:
id
name
sourceText
targetText
tenantId
userId
关联关系:
entries
projectBindings
9
TranslationMemoryEntry(翻译记忆条目)
翻译记忆库中的具体条目
关键字段:
id
memoryId
sourceText
targetText
sourceLang
targetLang
关联关系:
memory
10
TranslationStageRecord(翻译阶段记录)
记录翻译过程中每个阶段的执行历史
关键字段:
id
documentItemId
stepKey
actorType
status
metadata
关联关系:
documentItem
💡 用于追踪翻译流程、调试和审计
11
ProjectDictionary(项目-词典关联)
项目与词典的多对多关联
关键字段:
projectId
dictionaryId
12
ProjectMemory(项目-记忆库关联)
项目与翻译记忆库的多对多关联
关键字段:
projectId
memoryId
枚举类型
数据库中定义的枚举类型:
TranslationStage
翻译阶段枚举,表示文档项的翻译状态
NOT_STARTED
MT
MT_REVIEW
QA
QA_REVIEW
POST_EDIT
POST_EDIT_REVIEW
SIGN_OFF
COMPLETED
ERROR
CANCELED
DictionaryVisibility
词典可见性,控制词典的访问范围
PUBLIC
PROJECT
PRIVATE
DocumentStatus
文档处理状态,跟踪文档的处理进度
WAITING
PARSING
SEGMENTING
TERMS_EXTRACTING
PREPROCESSED
TRANSLATING
COMPLETED
ERROR
TranslationProcessActorType
翻译流程执行者类型,区分 AI 代理和人工操作
AGENT
USER
TranslationProcessStepStatus
翻译步骤执行状态
STARTED
SUCCESS
FAILED
UserRole
用户角色
ADMIN
USER
数据库迁移
使用 Prisma Migrate 管理数据库架构变更:
yarn prisma migrate dev开发环境创建新迁移
yarn prisma migrate deploy生产环境应用迁移
yarn prisma generate生成 Prisma Client
yarn prisma studio打开 Prisma Studio 可视化数据库