Hai cơ sở dữ liệu một cách có chủ đích: Postgres và MongoDB, mỗi cái đúng chỗ
"Tại sao bạn dùng tới hai cơ sở dữ liệu?" là một câu hỏi phỏng vấn hợp lý, và câu trả lời sai là "vì tôi có thể". Câu trả lời đúng phải gọi tên được khối công việc mà mỗi kho thực sự làm tốt hơn.
Cách chia
PostgreSQL nắm mọi thứ cần tính toàn vẹn quan hệ và giao dịch:
users, với email duy nhấtrefresh_tokens, có theo dõi family + xoay vòng và phát hiện tái dùngsubscribersvàaudit_logs
Khoá ngoại, tính duy nhất và ACID chính là cái cốt lõi. Riêng việc xoay vòng refresh-token cần các bất biến mạnh — một token bị phát lại phải hạ cả family phiên trong cùng một giao dịch.
MongoDB nắm các khối công việc nặng về append, linh hoạt schema, và vector:
analytics_events(có TTL index để tôn trọng dung lượng free-tier)contact_messages- để dành: transcript chat và embedding cho giai đoạn tìm kiếm ngữ nghĩa sau này
Quy tắc giữ cho nó trung thực
Mỗi mối quan tâm chỉ một writer. Không entity nào được ghi kép vào cả hai kho.
Khoảnh khắc cùng một bản ghi tồn tại có thẩm quyền ở hai nơi, bạn đã tự nhận lấy một bài toán nhất quán phân tán mà lẽ ra không cần. Truy cập xuyên kho chỉ là read model chỉ-đọc, không hơn.
Kỷ luật free-tier
Cả hai kho đều ở free tier (Neon và Atlas M0), nên thiết kế phải tôn trọng giới hạn của chúng: kết nối Postgres dùng pool (không mở client mỗi request), document Mongo gọn nhẹ, dọn dẹp bằng TTL trên luồng sự kiện, và đánh index ở các đường nóng.
Lưu trữ đa hệ không phải là sưu tầm cơ sở dữ liệu. Nó là việc từ chối ép một mô hình lên khối công việc không hợp với nó.
Bình luận
Chưa có bình luận nào. Hãy là người đầu tiên.