http://vietjack.com/mongodb/index.jsp Copyright © vietjack.com Relationship MongoDB Relationship MongoDB tượng trưng cho cách Document có mối liên quan với Relationship mơ hình hóa thơng qua phương thức Embeded vàReferenced Những Relationship 1:1, 1:N, N:1, N:N Chúng ta xem xét trường hợp lưu giữ địa người dùng Một người dùng có nhiều địa chỉ, điều tạo 1:N Relationship Dưới cấu trúc giả dụ cho user document: { "_id":ObjectId("52ffc33cd85242f436000001"), "contact": "987654321", "dob": "01-01-1991" } "name": "Tom Hanks", Còn cấu trúc giả dụ cho address document: { "_id":ObjectId("52ffc4a5d85242602e000000"), "building": "22 A, Indiana Apt", "pincode": 123456, "city": "Los Angeles", "state": "California" } Mơ hình hóa Embeded Relationships Trong phương pháp Embeded, nhúng address document vào user document { "_id":ObjectId("52ffc33cd85242f436000001"), "contact": "987654321", "dob": "01-01-1991", "name": "Tom Benzamin", "address": [ { "building": "22 A, Indiana Apt", "pincode": 123456, "city": "Los Angeles", "state": "California" }, { "building": "170 A, Acropolis Apt", "pincode": 456789, "city": "Chicago", "state": "Illinois" }] } Phương pháp trì tất liệu có liên quan Document đơn, điều giúp cho việc lấy trì liệu dễ dàng Tồn Document lấy truy vấn đơn, giống như: >db.users.findOne({"name":"Tom Benzamin"},{"address":1}) Ghi rằng, truy vấn trên, db users tương ứng Database Collection Điểm hạn chế là, Document nhúng tiếp tục tăng kích cỡ nhiều, ảnh hưởng đến hiệu suất đọc/ghi http://vietjack.com/ Trang chia sẻ các bài học online miễn phí http://vietjack.com/mongodb/index.jsp Copyright © vietjack.com Mơ hình hóa Referenced Relationship Đây phương pháp thiết kế Relationship tiêu chuẩn hóa Trong phương pháp này, user address document trì cách riêng rẽ, user document chứa trường mà tham chiếu đến trường id address document { "_id":ObjectId("52ffc33cd85242f436000001"), "dob": "01-01-1991", "name": "Tom Benzamin", ObjectId("52ffc4a5d85242602e000000"), ObjectId("52ffc4a5d85242602e000001") ] } "contact": "987654321", "address_ids": [ Như trên, user document chứa trường address_ids, mà chứa ObjectIds địa tương ứng Sử dụng ObjectIds này, truy vấn address document lấy chi tiết địa từ Với hướng tiếp cận này, cần hai truy vấn: lấy trườngaddress_ids từ user document sau lấy địa từ address collection >var result = db.users.findOne({"name":"Tom Benzamin"},{"address_ids":1}) >var addresses = db.address.find({"_id":{"$in":result["address_ids"]}}) http://vietjack.com/ Trang chia sẻ các bài học online miễn phí ... Trang chia sẻ các bài học online miễn phí ... © vietjack.com Mơ hình hóa Referenced Relationship Đây phương pháp thiết kế Relationship tiêu chuẩn hóa Trong phương pháp này, user address document trì cách riêng rẽ, user document chứa...http://vietjack.com /mongodb/ index.jsp Copyright © vietjack.com Mơ hình hóa Referenced Relationship