Công dụng chung
Nếu bạn có cấu trúc dữ liệu không được xác định rõ ràng tại thời điểm bạn tạo hệ thống. Tôi có xu hướng giữ các thiết lập người dùng trong nosql, ví dụ. Một ví dụ khác là một hệ thống mà người dùng cần để có thể thêm các trường khi chạy - rất đau trong RDBMS và dễ dàng trong NoQuery.
Nếu cấu trúc mô hình của bạn chủ yếu tập trung xung quanh một hoặc một vài đối tượng mô hình và hầu hết các mối quan hệ thực sự là các đối tượng con của các đối tượng mô hình chính. Trong trường hợp này, bạn sẽ thấy rằng bạn sẽ có khá ít nhu cầu tham gia thực tế. Tôi thấy rằng hệ thống quản lý liên hệ có thể được triển khai khá độc đáo trong nosql chẳng hạn. Một người có thể có nhiều địa chỉ, điện thoại và e-mail. Thay vì đặt chúng vào một bảng riêng biệt, tất cả chúng đều trở thành một phần của cùng một mô hình và bạn có một đối tượng một người.
Nếu bạn muốn hưởng lợi từ việc phân cụm dữ liệu của mình trên nhiều máy chủ thay vì có một máy chủ nguyên khối, thường được RDBMS yêu cầu.
Bộ nhớ đệm. Ngay cả khi bạn muốn gắn bó với RDBMS làm cơ sở dữ liệu chính của mình, việc sử dụng cơ sở dữ liệu NoQuery để lưu kết quả truy vấn hoặc lưu giữ dữ liệu, chẳng hạn như bộ đếm.
Lưu trữ tài liệu. Nếu bạn muốn lưu trữ các tài liệu mạch lạc, trong cơ sở dữ liệu, một số cơ sở dữ liệu NoQuery (như MongoDB) thực sự chuyên lưu trữ chúng.
Còn tham gia thì sao?
Thành thật mà nói, việc không tham gia nghe có vẻ khá đáng sợ với tôi ngay từ đầu. Nhưng mẹo là ngừng suy nghĩ trong SQL. Bạn phải thực sự suy nghĩ với đối tượng bạn có trong bộ nhớ khi bạn đang chạy ứng dụng của mình. Chúng nên được lưu ít nhiều vào cơ sở dữ liệu NoQuery khi chúng nằm trong khu vực.
Bởi vì bạn có thể lưu trữ biểu đồ đối tượng đầy đủ của mình, với các đối tượng con, hầu hết nhu cầu tham gia đều bị loại bỏ. Và nếu bạn thấy bạn cần một thứ, bạn sẽ phải cắn viên đạn và tìm nạp cả hai đối tượng và tham gia vào mã ứng dụng của mình.
May mắn thay, hầu hết các trình điều khiển có thể thực hiện việc tham gia cho bạn, nếu bạn thiết lập lược đồ của mình đúng.
Để đọc thêm, tôi thực sự khuyên Martin Fowler .