30/09/2018, 23:51
Thiết kế mô hình cho cơ sở dữ liệu NoSql
Em có thắc mắc là các mô hình csdl quan hệ như Oracle hay SQL server…thì có nhiều mô hình thiết kế như ERD, OMT… Vậy các anh cho em hỏi là các csdl nosql như Firebase hay Mongodb thì có thể thiết kế như các mô hình kia hay không ạ.
Bài liên quan
Free style bạn nhé Thiết kế document cho phù hợp với với nhu cầu sử dụng. Nói chung là với NoSQL thì câu hỏi đặt ra khi thiết kế là: Ứng dụng của bạn cần những thông tin gì cùng lúc thì cho nó vào cùng document.
Dùng NoSQL chỉ quan tâm là:
Chẳng có rule gì hết.
Bạn dùng ERD cũng được , nó khá tương đồng với cách lưu trữ của mongodb.
Bác có thể cho em xin ví dụ được không ạ ?
Nosql ko có khái niệm table và relationship nên dữ liệu rất thoải mái. Nói 1 cách dễ hiểu thì nó lưu key value và value thường là json. Bạn thích put cái j vào cũng được.
Tuy nhiên cũng có 1 số tip
…
Lưu vậy sau này phát sinh những yêu cầu như thống kê order theo customer thì đâu có được bạn.
Ban thong ke trong bang order luon
Thống kê trong order luôn là sao mình chưa hiểu.
Theo suy nghĩ của mình là việc bạn lưu customer trong order thì về logic mỗi khi tạo 1 order thì bạn cũng tạo luôn một customer gắn với order đó, nghĩa là bạn không thể thống kê order theo customer được vì mỗi customer chỉ gắn với một order.
Sao lại ko nhỉ?
Bạn thống kê order theo customer thì trong bảng order đã có customerId rồi. Hoàn toàn có thể thống kê được. Với lại khi tạo order thì vẫn tạo customer trong bảng customer, order trong bảng order, chỉ là trong order thì có 1 số field của customer mà thôi. (ID , Name).
Giả sử bạn cần thống kê theo customer xxx
Select * from order where order.customerID = xxx hoặc
Select sum(money) from order group by customerID… (Mình viết sql cho bạn dễ hiểu)
Ủa mình đâu thấy bạn đề cập bảng customer, mà như vậy bạn vẫn phải dùng đến join nếu có thay đổi. Vậy đâu khác gì mô hình rationship.
Mình ko hiểu ý bạn lắm. Mình làm vd đó có phải join j đâu?