数据库设计

了解 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 可视化数据库