Làm thế nào để thiết kế bảng như thế này trong mongodb?
Đầu tiên, để làm rõ một số quy ước đặt tên. MongoDB sử dụng collections
thay vì tables
.
Tôi nghĩ rằng không có khóa ngoại!
Lấy mô hình sau:
student
{
_id: ObjectId(...),
name: 'Jane',
courses: [
{ course: 'bio101', mark: 85 },
{ course: 'chem101', mark: 89 }
]
}
course
{
_id: 'bio101',
name: 'Biology 101',
description: 'Introduction to biology'
}
Rõ ràng danh sách khóa học của Jane chỉ ra một số khóa học cụ thể. Cơ sở dữ liệu không áp dụng bất kỳ ràng buộc nào đối với hệ thống ( tức là:ràng buộc khóa ngoại ), vì vậy không có "xóa xếp tầng" hoặc "cập nhật xếp tầng". Tuy nhiên, cơ sở dữ liệu có chứa thông tin chính xác.
Ngoài ra, MongoDB có một tiêu chuẩn DBRef giúp tiêu chuẩn hóa việc tạo các tham chiếu này. Trên thực tế, nếu bạn nhìn vào liên kết đó, nó có một ví dụ tương tự.
Làm cách nào để giải quyết công việc này?
Để rõ ràng, MongoDB không phải là quan hệ. Không có tiêu chuẩn "hình thức bình thường". Bạn nên lập mô hình cơ sở dữ liệu của mình phù hợp với dữ liệu bạn lưu trữ và các truy vấn bạn định chạy.