2013-02-05 22 views
7

Nếu bạn làm theo mẫu lưu trữ, chúng ... nói để tạo kho lưu trữ cho mỗi thực thể tổng hợp gốc.một kho lưu trữ cho mỗi thực thể tổng hợp gốc trong thiết kế điều khiển miền

Điều đó có nghĩa khi tôi có mô hình này:

khách hàng có đơn đặt hàng để có sản phẩm sản phẩm có nhà cung cấp

vv ...

Điều đó sẽ có nghĩa là tôi có 4 kho được đưa vào ONE repo. khách hàng là thực thể gốc.

Tôi có hiểu lầm ở đây không?

Trả lời

8

Đúng là bạn nên có một kho lưu trữ cho mỗi tập hợp. Tuy nhiên, điều có thể khác nhau là tập hợp các tập hợp trong miền của bạn. Mô hình Khách hàng/Đơn đặt hàng/Sản phẩm/Nhà cung cấp có thể được phân tách thành tập hợp theo nhiều cách. Sự phân hủy thành tập hợp phụ thuộc vào nhiều yếu tố khác nhau và phụ thuộc vào miền trong tầm tay.

Tổng hợp phải là một ranh giới nhất quán có nghĩa là nó xác định tập hợp các thực thể nào phải nhất quán trong bối cảnh hành vi được liên kết với các thực thể đó. Với ràng buộc này, các tham chiếu đối tượng giữa các aggregate phải được loại bỏ và thay thế bằng các tham chiếu nhận dạng.

Trong mô hình của bạn, có thể là khách hàng, đơn đặt hàng, sản phẩm và nhà cung cấp là các tập hợp riêng biệt và do đó sẽ yêu cầu các kho lưu trữ riêng biệt. Mặc dù khách hàng là một gốc tổng hợp (một phần của tổng hợp khách hàng) và thứ tự phụ thuộc vào khách hàng, nó không có nghĩa là kho lưu trữ của khách hàng nên chứa kho lưu trữ thứ tự. Kho lưu trữ thứ tự phải hoàn toàn tách biệt, vì thứ tự là gốc của tổng hợp thứ tự.

Hãy xem Effective Aggregate Design by Vaughn Vernon để biết cách xử lý chuyên sâu về cách thiết kế tổng hợp.

+0

Bạn vui lòng sửa lỗi này: "... vì trật tự là tổng hợp của tổng hợp thứ tự" – Elisabeth

+0

Tôi đã thay đổi từ ngữ một chút, nhưng tôi không chắc chắn những gì bạn muốn sửa chữa? – eulerfx

+0

hm Tôi đoán tôi không hiểu tại sao thứ tự là gốc của tổng hợp thứ tự. Bạn có thể cho tôi biết thứ tự sẽ không phải là gốc của lệnh tổng hợp không? Cảm ơn các liên kết tôi đã đánh dấu nó. – Elisabeth

0

Bạn có 4 thực thể liên quan như bạn đã nêu ở trên và kho lưu trữ triển khai ngữ cảnh giao dịch cho tất cả các thực thể liên quan đó.

+0

câu hỏi là về DDD không phải về thực thể và mô hình dữ liệu –

Các vấn đề liên quan