Tôi muốn nói bạn đã trả lời câu hỏi của riêng bạn tại đây.
Tôi có lý do chính đáng để sử dụng mongodb cho một phần của ứng dụng của tôi.
Giả sử bạn cũng có lý do chính đáng để giữ các phần khác trong MySQL, tôi cho rằng câu trả lời là có. Câu hỏi của bạn ngụ ý (ít nhất là với tôi) rằng bạn có hiểu biết tốt về các tùy chọn khác nhau và điểm mạnh và điểm yếu của chúng và do đó đạt được một kết luận hợp lý trong việc chia nhỏ mô hình của bạn là có thể thực hiện được.
Giả sử hai nửa không liên kết theo cách nào đó (mối quan hệ giữa hai âm thanh như công thức để giảm đau sau này), tôi khuyên bạn nên sử dụng nó và sử dụng từng công cụ cho những gì tốt nhất.
Có thể giải quyết một số mối quan tâm mà Michael nêu ra với phương pháp này. vì bạn đang tập trung vào việc sử dụng Rails, bạn có thể sử dụng ActiveRecord cho các mô hình dựa trên MySQL của mình và sử dụng MongoMapper cho các mô hình dựa trên MongoDb của bạn. Bằng cách này, bạn sẽ không phải đối phó với hai phương thức truy vấn hoàn toàn khác nhau vì MongoMapper cung cấp một cách tiếp cận rất ActiveRecordish. Tất nhiên, bạn có thể dễ dàng thả xuống vào truy vấn Mongo cụ thể và khi bạn cần.
Mối quan tâm liên quan đến mối quan hệ chéo-DB là hợp lệ theo ý kiến của tôi và nếu đây là điều bạn muốn có, tôi chắc chắn sẽ khuyên bạn nên kiểm tra tình huống để đảm bảo đây là điều bạn hạnh phúc khi sống với. Tôi tưởng tượng bạn có thể tiết kiệm rất nhiều đau cho sau này trong trường hợp cụ thể đó.
Nhìn chung, tôi khuyên bạn nên miễn là hai nửa của bạn tương đối bị ngắt kết nối với nhau, lớp kiên trì chia tách sẽ hoạt động tốt cho bạn.
Nguồn
2010-03-19 09:13:23
Cảm ơn tuyệt vời cho ví dụ thực tế! –
Bạn có sử dụng trình kết nối CouchDB hay chỉ thực hiện cuộc gọi qua REST trực tiếp? Tôi đã có một kịch bản có ý nghĩa để sử dụng cả hai là tốt, và tôi không chắc chắn một lớp Active Record ở giữa là đáng giá vì các cuộc gọi sẽ được khá nhiều lấy và chạy. – eddieroger