Cấu trúc Dữ liệu: Module Auto Report
Tài liệu này chi tiết về cấu trúc cơ sở dữ liệu cho module Auto Report.
1. Tổng quan
Module Auto Report sử dụng cơ sở dữ liệu PostgreSQL với Drizzle ORM. Nó lưu trữ các cấu hình báo cáo, lịch sử tạo và các ảnh chụp nhanh dữ liệu được sử dụng để tạo báo cáo.
Mô hình Tên miền Cốt lõi
2. Định nghĩa các Bảng
report_templates
Định nghĩa cho các báo cáo tự động định kỳ.
| Trường | Kiểu | Mô tả |
|---|---|---|
id | uuid | PK. |
org_id | uuid | Phạm vi tổ chức. |
name | text | Tên hiển thị. |
sources | jsonb | Các module và điểm cuối để truy vấn (ví dụ: ["hrm/employees", "drive/files"]). |
system_prompt | text | Logic prompt tùy chỉnh cho LLM. |
schedule_cron | text | Chuỗi cron tiêu chuẩn cho tự động hóa. |
execution_logs
Theo dõi lịch sử cho mỗi lần chạy (tự động hoặc thủ công).
| Trường | Kiểu | Mô tả |
|---|---|---|
id | uuid | PK. |
template_id | uuid | FK đến report_templates.id. |
status | enum | pending, running, success, error. |
error_message | text | Thu thập chi tiết nếu một lần chạy thất bại. |
report_results
Nội dung cuối cùng được tạo ra và ảnh chụp nhanh ngữ cảnh của nó.
| Trường | Kiểu | Mô tả |
|---|---|---|
id | uuid | PK. |
execution_id | uuid | FK đến execution_logs.id. |
content_markdown | text | Báo cáo tự sự do AI tạo ra. |
data_snapshot | jsonb | Bản sao JSON cố định của dữ liệu đầu vào để phục vụ tái lập. |
3. Logic Lưu trữ Dữ liệu
Để quản lý việc sử dụng bộ nhớ, bảng report_results triển khai logic thời gian tồn tại (TTL) (dự kiến v1.1). Các kết quả cũ hơn giới hạn lưu trữ của tổ chức sẽ bị xóa.
sql
-- Truy vấn dọn dẹp dự kiến
DELETE FROM report_results
WHERE id IN (
SELECT r.id FROM report_results r
JOIN execution_logs e ON r.execution_id = e.id
WHERE e.started_at < NOW() - INTERVAL '90 days'
);