2011-12-30 34 views
11

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 mySQLMongoDB? Những thứ đơn giản như CRUD.

Làm cách nào để bắt đầu, tôi bắt đầu từ đâu?

+1

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

+0

@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

+1

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

Trả lời

5

Bạn có thể bắt đầu here.

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?

Answer:

Một cách tiếp cận không quan hệ là con đường tốt nhất để các giải pháp cơ sở dữ liệu mà quy mô ngang để> nhiều máy.

Answer:

MongoDB lưu trữ dữ liệu trong các tài liệu JSON (mà chúng tôi serialize để BSON). JSON cung cấp cho chúng ta một mô hình dữ liệu phong phú liên tục ánh xạ tới các kiểu ngôn ngữ lập trình bản địa và từ lược đồ ít hơn, giúp dễ dàng phát triển mô hình dữ liệu của bạn hơn với hệ thống với các lược đồ được thực thi như RDBMS.

Kiểm tra cũng What is NoSQL, how does it work, and what benefits does it provide?, I need an advice about NoSQL/MongoDb and data/models structureConverting simple MySQL database to a NoSQL solution

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