DB sống và ERD DBeaver

Trang này dùng khi cần đưa bằng chứng từ DBeaver hoặc DB đang chạy. Nội dung chỉ dựa trên metadata/schema, không đưa mật khẩu, connection string, email người dùng hoặc dữ liệu cá nhân vào tài liệu.

Tóm tắt để nói với thầy

78bảng nghiệp vụ trong schema public
2materialized views phục vụ thống kê
107file Flyway migration SQL trong repo
V135migration mới nhất đã chạy thành công

Theo DB sống kiểm tra ngày 14/06/2026, migration mới nhất là V135__video_storage_governance.sql. Nếu DBeaver hiển thị thêm flyway_schema_history, đó là bảng quản trị của Flyway, không tính vào 78 bảng nghiệp vụ LMS.

Ảnh ERD tổng từ DBeaver

Ảnh toàn cảnh schema public xuất từ DBeaver. Dùng để chứng minh hệ thống có schema thật, nhiều domain và quan hệ khóa ngoại rõ ràng.
Mở ảnh lớn
ERD tổng schema public của LMS trong DBeaver

Bản đồ domain dễ học

Sơ đồ nhỏ hơn để giải thích trước khi mở ERD tổng. Nó gom bảng theo domain thay vì vẽ từng khóa ngoại.
Mở SVG
Sơ đồ domain database LMS

Row estimate từ DB sống

PostgreSQL có hai kiểu số lượng hay bị nhầm:

  • Số bảng: số object dạng table trong schema, dùng để trả lời “database có bao nhiêu bảng”.
  • Row estimate: ước lượng số dòng từ thống kê PostgreSQL, dùng để biết bảng nào đang lớn hơn. Đây không phải COUNT(*) tuyệt đối.
Bảng Row estimate Indexes Foreign keys Ý nghĩa khi trình bày
audit_log 58,103 4 0 Log hệ thống lớn nhất vì ghi nhiều sự kiện quản trị/vận hành.
question_options 8,541 2 2 Nhiều option vì mỗi câu hỏi có nhiều lựa chọn.
course_review_events 5,301 3 2 Lịch sử review/approval của khóa học.
learning_events 4,637 4 1 Event học tập dùng cho analytics/progress.
course_publications 2,649 4 1 Snapshot learner-facing sau khi course được duyệt.
lessons 2,592 5 2 Bài học; rich content nằm trong cột JSONB content_blocks.
questions 2,143 11 5 Ngân hàng câu hỏi và metadata đánh giá.
quiz_questions 2,114 3 4 Bảng nối quiz với question.
student_lesson_progress 1,007 5 4 Tiến độ học theo lesson.
chapters 847 4 2 Chương trong course.
course_embedded_tags 845 1 1 Tag nhúng trong course/content.
quizzes 516 6 2 Quiz gắn với course/lesson.
enrollments 453 8 4 Ghi danh học viên.
file_attachments 338 8 1 Metadata file upload/attachment.
announcement_reads 321 2 2 Trạng thái đã đọc thông báo.

Cách nói cho đúng

Nên nói “Theo Flyway và DB sống hiện tại, schema public có 78 bảng nghiệp vụ, 2 materialized views; migration mới nhất đã chạy là V135__video_storage_governance.sql.”
Không nên nói “Database có 88, 108 hay 135 bảng” nếu chưa nói rõ cách đếm. Những số đó dễ nhầm giữa table, migration file, Flyway version và object phụ.

Khi mở DBeaver để demo

  1. Mở connection qua SSH tunnel, nhưng không chiếu password hoặc file key.
  2. Vào database lms, schema public.
  3. Nếu cần chứng minh tổng quan, mở tab Diagram hoặc ảnh ERD tổng.
  4. Nếu thầy hỏi bảng cụ thể, chuyển sang SQL schema catalog để tra cột, index và migration nguồn.
  5. Khi nói số bảng nghiệp vụ, bỏ qua flyway_schema_history vì đó là bảng kỹ thuật của Flyway.

Query kiểm chứng đã dùng

Truy vấn chỉ đọc metadata từ pg_class, pg_namespace, pg_stat_user_tables, pg_index, pg_constraintflyway_schema_history. Không đọc dữ liệu người dùng hoặc nội dung học tập.

-- Ý tưởng kiểm tra: đếm table/view và lấy row estimate từ catalog PostgreSQL.
SELECT relname, n_live_tup
FROM pg_stat_user_tables
ORDER BY n_live_tup DESC;