Được đăng trên danh sách gửi thư của Grails ...Grails MongoDB Plugin: Bộ sưu tập được nhúng vs Tài liệu tham khảo
Tôi thường không phải là một chàng trai cơ sở dữ liệu nhưng với việc phát hành plugin mongodb mới nhất cho grails, tôi muốn xem thỏa thuận lớn là với cơ sở dữ liệu noSQL. MongoDB có vẻ khá thú vị. Tôi đã đọc các thông tin về lưu trữ theo định hướng tài liệu và đã xem qua kịch bản sau đây:
khách hàng/Order/Order mục dòng
Các doc nói đơn đặt hàng nên có một bộ sưu tập. khách hàng một bộ sưu tập. các chi tiết đơn hàng phải là một mảng các chi tiết đơn hàng được nhúng trong đối tượng order.
Đối với GORM, mẫu này được đảm bảo như thế nào? Tôi thường có các thông tin sau:
class Customer {
static hasMany = [orders: Order]
}
class Order {
static hasMany = [orderItems: OrderItem]
static belongsTo = [customer:Customer]
}
class OrderItem {
static belongsTo = [order:Order]
}
Làm cách nào để đảm bảo rằng Đơn đặt hàng là bộ sưu tập của riêng nó chứ không được nhúng trong Khách hàng? Nếu đó là mặc định, làm thế nào để tôi chắc chắn rằng OrderItems được nhúng trong Order và không phải là bộ sưu tập của riêng nó? Mặc định ở đây là gì?
Cảm ơn.
Hi, câu trả lời này là hữu ích, nhưng nó không thực sự trả lời câu hỏi - nó chỉ cung cấp hướng đi tìm câu trả lời. Cụ thể, tôi vẫn chưa rõ liệu những thứ như "hasMany" có được sử dụng trong ngữ cảnh mongodb hay không, và nếu không, thì chính xác như thế nào nên được biểu thị trong lớp miền sao cho các bộ sưu tập được lưu trữ chính xác trong mongodb. Tôi nghĩ rằng nếu câu hỏi của Gregg ("Làm thế nào để đảm bảo rằng Đơn đặt hàng ... được nhúng vào Thứ tự chứ không phải là bộ sưu tập của riêng nó? Cái gì là mặc định ở đây?") Được trả lời một cách rõ ràng, đó sẽ là một ví dụ tốt để học hỏi. – mindthief
@mindthief: Cập nhật câu trả lời để rõ ràng hơn một chút khi trả lời câu hỏi. Ngoài ra, tôi tin rằng "hasMany" là một loại khái niệm cơ sở dữ liệu quan hệ hơn, đó là lý do tại sao MongoDB không sử dụng nó. – Pat
... Cảm ơn Pat !! – mindthief