Hướng dẫn database schema example mongodb - ví dụ lược đồ cơ sở dữ liệu mongodb
Một số định nghĩa trước khi đi sâu về MongoDB. Đây là một cross-platform, DB hướng documents với hiệu năng cao, có thể đáp ứng cho đa dạng các hệ thống và dễ dàng để scale. Tư tưởng của MongoDB là thông qua khái niệm collection và document. Vì không tìm được từ tiếng việt hay ho hơn nên tạm thời cho phép mình giữ nguyên các khái niệm tiếng anh của 2 thuật ngữ này. Show Nội dung chính
DatabaseDatabase là một container vật lý cho các collection. Mỗi DB được thiết lập cho riêng nó một danh sách các files hệ thống files. Một máy chủ MongoDB đơn thường có nhiều DB. CollectionCollection là một nhóm các documents của MongoDB. Nó tương đương với một table trong RDBMS. Một Collection tồn tại trong một cơ sở dữ liệu duy nhất. Các collection ko tạo nên một schema. Documents trong collection có thể có các fields khác nhau. Thông thường, tất cả các documents trong collections có mục đích khá giống nhau hoặc liên quan tới nhau DocumentMột document là một tập hợp các cặp key-value. Documents có schema động. Schema động có nghĩa là documents trong cùng một collection không cần phải có cùng một nhóm các fields hay cấu trúc giống nhau, và các fields phổ biến trong các documents của collection có thể chứa các loại dữ liệu khác nhau. Bảng dưới đây cho thấy mối quan hệ của các thuật ngữ RDBMS với MongoDB Một số cân nhắc khi thiết kế schema trong MongoDB
MongoDB - Sort Records MongoDB - Indexing
Collection Collection là một nhóm các documents của MongoDB. Nó tương đương với một table trong RDBMS. Một Collection tồn tại trong một cơ sở dữ liệu duy nhất. Các collection ko tạo nên một schema. Documents trong collection có thể có các fields khác nhau. Thông thường, tất cả các documents trong collections có mục đích khá giống nhau hoặc liên quan tới nhau Document
Một document là một tập hợp các cặp key-value. Documents có schema động. Schema động có nghĩa là documents trong cùng một collection không cần phải có cùng một nhóm các fields hay cấu trúc giống nhau, và các fields phổ biến trong các documents của collection có thể chứa các loại dữ liệu khác nhau. MongoDB - Create/Drop DatabaseBảng dưới đây cho thấy mối quan hệ của các thuật ngữ RDBMS với MongoDB
Thiết kế schema dựa trên yêu cầu của user
Kết hợp các object vào một document nếu bạn sử dụng chúng với nhau. Nếu không thì tách riêng hẳn nó ra (nhưng cần phải chú ý là sau này nó sẽ không phải joins).
Duplicate dữ liệu (nhưng có giới hạn) vì không gian đĩa là quá rẻ so với tốc độ xử lý.
joins khi write, không joins khi read.
Tối ưu schema cho hầu hết các case sử dụng thông thường
MongoDB - Create/Drop CollectionTập hợp các nhóm phức tạp vào schema Ví dụ :Giả sử là một khách hàng cần một thiết kế DB cho blog của anh ta và cân nhắc sự khác biệt schema giữa RDMS và MongoDB. Web sẽ có những yêu cầu sau : 9Mọi post có unique title, description và url. 0Mọi post có thể có 1 hoặc nhiều tags. 0Mọi post có name của publisher và số lượng người xem likes 1Kiểu dữ liệu
MongoDB - DocumentVí dụ nhé : 2Thiết kế schema dựa trên yêu cầu của user 3Kết hợp các object vào một document nếu bạn sử dụng chúng với nhau. Nếu không thì tách riêng hẳn nó ra (nhưng cần phải chú ý là sau này nó sẽ không phải joins). 4Duplicate dữ liệu (nhưng có giới hạn) vì không gian đĩa là quá rẻ so với tốc độ xử lý. 5joins khi write, không joins khi read. 6Drop DB 7MongoDB - Create/Drop Collection 8Dưới đây là syntax để tạo một Collection 9
>show dbs
local 0.78125GB
test 0.23012GB
>show dbs
local 0.78125GB
test 0.23012GB
>show dbs
local 0.78125GB
test 0.23012GB
>show dbs
local 0.78125GB
test 0.23012GB
>show dbs
local 0.78125GB
test 0.23012GB
>show dbs
local 0.78125GB
test 0.23012GB
|