Cấu trúc Dữ liệu: Module Document
Tài liệu này chi tiết về cấu trúc cơ sở dữ liệu cho module Document.
1. Tổng quan
Module Document sử dụng PostgreSQL với Drizzle ORM. Nó lưu trữ nội dung tài liệu dưới dạng JSONB có cấu trúc để bảo toàn trạng thái trình soạn thảo TipTap và lịch sử.
Mô hình Tên miền Cốt lõi
2. Định nghĩa các Bảng
documents
Siêu dữ liệu cốt lõi cho một tài liệu cộng tác.
| Trường | Kiểu | Mô tả |
|---|---|---|
id | uuid | PK. |
org_id | varchar | Phạm vi tổ chức. |
title | varchar | Tiêu đề tài liệu. |
status | enum | draft, in_review, published. |
current_version_id | uuid | Tham chiếu đến document_versions.id mới nhất. |
document_versions
Các ảnh chụp nhanh lịch sử của nội dung tài liệu.
| Trường | Kiểu | Mô tả |
|---|---|---|
id | uuid | PK. |
document_id | uuid | FK đến documents.id. |
version_number | integer | Bộ đếm phiên bản tăng dần. |
content | jsonb | Cấu trúc JSON tương thích TipTap. |
approval_requests
Theo dõi luồng công việc để xuất bản.
| Trường | Kiểu | Mô tả |
|---|---|---|
id | uuid | PK. |
document_id | uuid | FK đến documents.id. |
status | enum | pending, approved, changes_requested. |
reviewer_id | varchar | Shell User ID được gán để xem xét. |
3. Các Kiểu Liệt kê (Enums)
document_status
draft: Mở để tác giả chỉnh sửa.in_review: Bị khóa không cho chỉnh sửa; đang chờ phê duyệt.published: Chỉ đọc (trừ khi một phiên bản nháp mới được tạo).
approval_status
pending: Đang chờ hành động của người xem xét.approved: Luồng công việc hoàn thành thành công.changes_requested: Người xem xét yêu cầu sửa đổi.