2013-12-15 14 views
6

Tôi đã tìm kiếm trực tuyến bất kỳ thông tin nào liên quan đến việc sử dụng cả cơ sở dữ liệu Thiết kế và đồ thị miền như Neo4j, tôi phải nói rằng không có nhiều thông tin!Thiết kế điều khiển tên miền cùng với cơ sở dữ liệu đồ thị

Truy vấn chính của tôi đi kèm với sự chồng chéo rõ ràng giữa hai cơ sở dữ liệu đồ thị và mô hình DDD miền, Cơ sở dữ liệu đồ thị tuy nhiên chỉ giữ trạng thái chứ không phải hành vi. Tôi không thực sự chắc chắn làm thế nào để kết hợp hai ... làm thế nào để kết hợp trong hành vi? Có lẽ sử dụng dịch vụ miền? Tạo các thực thể/giá trị tên miền cho mỗi nút biểu đồ có vẻ là một cách vô lý để thêm hành vi.

Bất kỳ ý tưởng nào?

Trả lời

5

Chúng có thể cùng tồn tại theo cách mà cơ sở dữ liệu biểu đồ thường được sử dụng ở phía "đã đọc".

Những gì mọi người làm đôi khi họ áp dụng CQRS cho một bối cảnh bị ràng buộc nhất định và sử dụng đồ thị DB cho các dự án có ý nghĩa.

3

Điều này tùy thuộc vào ngữ cảnh bị chặn và cách bạn sử dụng dữ liệu.

dữ liệu tiêu thụ bối cảnh bị chặn:

Bạn có thể sử dụng một dịch vụ miền để ẩn technolegy chi tiết. Có một ví dụ rất hay trong số dddsample nổi tiếng. Họ sử dụng một RoutingService để định tuyến riêng biệt kiến ​​thức (evloved như định tuyến bounded bối cảnh) từ đặt hàng hàng hóa bị ràng buộc bối cảnh.

Việc triển khai phía sau dịch vụ miền có thể thậm chí không được phát triển bằng ddd. Bạn có thể phát triển nó một cách thân thiện với cơ sở dữ liệu đồ thị.

dữ liệu sản xuất bối cảnh bị chặn:

CQRS có thể là một giải pháp tốt để sửa chữa khoảng cách giữa mô hình miền và cơ sở dữ liệu đồ thị. Trong trường hợp này, các mô hình miền được sử dụng để tạo ra các nút và mối quan hệ được tính toán.

+0

Hãy để tôi chỉ xem nếu tôi hiểu ... bạn đề xuất rằng tôi có thể sử dụng CQRS để tôi có thể sử dụng cơ sở dữ liệu biểu đồ làm mô hình Truy vấn và mô hình miền làm mô hình Lệnh? Nếu đây là trường hợp tôi vẫn không chắc chắn về sự tương tác giữa tên miền (Command) và đồ thị (Query) ... liệu mô hình miền vẫn cập nhật kho lưu trữ dữ liệu truyền thống (hầu hết quan hệ DB) thì biểu đồ được thông báo sao cho nó có thể phản ánh những thay đổi. Điều này không thực sự thu hẹp khoảng cách giữa hành vi (được cung cấp bởi tên miền) và trạng thái (được cung cấp bởi biểu đồ). Tôi đã hiểu lầm chưa? – JLove

+0

Trạng thái tên miền có thể được lưu trữ trong giải pháp EventSourcing thuần túy hoặc trong kho khóa/giá trị ở dạng được tuần tự hóa. Các sự kiện sau đó được chuẩn hóa thành RDBMS, cơ sở dữ liệu đồ thị, hoặc bất cứ điều gì, tùy thuộc vào nhu cầu truy vấn của bạn. –

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