Tôi sử dụng PHP/mySQL/CodeIgniter khá nhiều, viết các câu lệnh sql để xử lý/thao tác dữ liệu. Tôi cảm thấy làm tất cả những gì là nguyên thủy, và tôi đã nghe những điều tốt đẹp về MongoDB, cơ sở dữ liệu lược đồ ít hơn.Tôi cần giới thiệu về cơ sở dữ liệu MongoDB/NoSQL
Trong MySQL, các lược đồ giúp tôi tìm ra cấu trúc của mô hình. Thông thường, tôi vẽ một sơ đồ lớp với những thứ cơ bản như: id, tiêu đề, mô tả, ngày
Điều khiến tâm trí của tôi bị thổi phồng, MongoDB dường như cực kỳ đơn giản, thật khó nắm bắt bắt đầu từ đâu. Từ những gì tôi nghe/đọc, nó không có lược đồ. Làm thế nào để tôi biết loại hình nào sẽ trở lại?
Làm cách nào để tạo mô hình của mình, làm cách nào để thêm mối quan hệ giữa các "bảng" khác nhau?
Cách tiêu chuẩn để thêm mối quan hệ và ánh xạ dữ liệu là gì? Tôi đã thử chơi với nó, nhưng không chắc tôi đang làm gì là đúng.
Tôi đã thử đọc sách hướng dẫn và như vậy, nhưng không thể tìm thấy một bài viết hay giúp tôi chuyển từ mySQL sang MongoDB.
Có cách nào tôi có thể thấy so sánh Mô hình với mySQL và MongoDB? Những thứ đơn giản như CRUD.
Làm cách nào để bắt đầu, tôi bắt đầu từ đâu?
Chỉ có một câu trả lời một phần, nhưng cố gắng nghĩ về cơ sở dữ liệu của bạn chỉ như là nơi mà bạn lưu trữ công cụ giữa các yêu cầu. Cơ sở dữ liệu của bạn không * ứng dụng của bạn *, ứng dụng (mã) của bạn là ứng dụng của bạn. Cơ sở dữ liệu chỉ dành cho * persistence *. Điều này diễn ra tốt đẹp với cách tiếp cận OOP hoàn chỉnh, đúng, nơi các lớp/đối tượng của bạn đại diện cho các mô hình của bạn, không phải là nơi các mô hình đại diện cho cơ sở dữ liệu. – deceze
@deceze Làm cho tinh thần, vì vậy về cơ bản thiết kế các mô hình theo ứng dụng, không phải cơ sở dữ liệu .. – tpae
Phải, bạn thực hiện logic nghiệp vụ của mình trực tiếp bằng cách sử dụng các lớp/đối tượng, thể hiện một trạng thái nhất định và chú ý rằng trạng thái này chỉ thay đổi theo logic nghiệp vụ (các thuộc tính 'private', setters và tất cả những thứ đó). Cơ sở dữ liệu chỉ ở đó để duy trì trạng thái đó sau khi tập lệnh kết thúc. – deceze