MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Khóa ngoại trong mongo?

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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo - Bỏ qua thuộc tính để được duy trì

  2. Cách thả cơ sở dữ liệu trong MongoDB từ Dòng lệnh

  3. Cách đếm số lượng tài liệu trong bộ sưu tập mongodb

  4. Mã thoát mongo không mong muốn 100. Đang khởi động lại

  5. MongoDB Tìm Khớp Mảng Chính xác nhưng thứ tự không quan trọng