2012-07-04 68 views
25

Tôi hiện đang viết một luận án và cần hiển thị lược đồ của MongoDB của tôi trong một sơ đồ. Tôi đã không tìm thấy tài nguyên nào về sơ đồ cho cơ sở dữ liệu dựa trên tài liệu.MongoDB: Làm cách nào để biểu diễn sơ đồ lược đồ trong luận án?

Có Sơ đồ quan hệ thực thể (ERD) cho cơ sở dữ liệu quan hệ. Tôi có những lựa chọn nào cho MongoDB? Tôi đã nhận thấy rằng rất nhiều blog chỉ hiển thị JSON thô là "sơ đồ" của chúng nhưng điều này không khả thi trong luận án của tôi.

Đây là một mẫu của một trong những cấu trúc JSON của tôi:

//MultiChoiceQuestion 
{ 
    "title": "How are you?", 
    "valid_answers" : [ 
     { 
      "_id" : ObjectID(xxxx), 
      "title": "Great", 
      "isCorrect": true, 
     }, 
     { 
      "_id" : ObjectID(yyyy), 
      "title": "OK", 
      "isCorrect": false, 
     }, 
     { 
      "_id" : ObjectID(zzzz), 
      "title": "Bad", 
      "isCorrect": false, 
     } 
    ], 
    "user_responses" : [ 
     { 
      "user": ObjectID(aaaa), 
      "answer": ObjectID(xxxx) 
     }, 
     { 
      "user": ObjectID(bbbb), 
      "answer": ObjectID(xxxx) 
     }, 
     { 
      "user": ObjectID(cccc), 
      "answer": ObjectID(yyyy) 
     } 
    ] 
} 

//User 
{ 
    "_id": ObjectID(aaaa), 
    "name": "Person A" 
} 
//User 
{ 
    "_id": ObjectID(bbbb), 
    "name": "Person B" 
} 
//User 
{ 
    "_id": ObjectID(cccc), 
    "name": "Person C" 
} 

Phải chăng đây là một sơ đồ có thể: Possible Diagram?

+0

vì lược đồ chỉ áp dụng cho một tài liệu duy nhất, đó có thể là lý do mọi người chỉ hiển thị chính tài liệu. không có tài liệu nào khác trong bộ sưu tập phải có cùng một lược đồ. –

+0

Có, nhưng trong trường hợp của tôi, mọi "MultiChoiceDocument" đều giống nhau nên tôi muốn thể hiện điều đó. – Andrew

+1

Mặc dù không có lược đồ rõ ràng trong kho dữ liệu MongoDB, nhưng hầu như luôn có một lược đồ ngầm cần được biểu diễn. http://martinfowler.com/articles/schemaless/ – AndrewW

Trả lời

22

Chúng tôi tìm thấy sơ đồ lớp để thực sự là một trong những cách tốt nhất để đại diện cho một thiết kế lược đồ mongo.

Nó có thể chụp hầu hết các mục mà tài liệu sẽ có chẳng hạn như mảng, đối tượng nhúng và thậm chí tham chiếu.

hướng dẫn

chung chúng tôi sử dụng để liên hệ vào khái niệm để UML

Nhúng = Thành phần hợp

Reference = Hiệp hội lớp

Nếu bạn không quen với các thuật ngữ uml thì đây là một giới thiệu phong nha.

UML intro from IBM site

+1

Vì vậy, dựa trên thiết kế UML, tôi có được điều này: http://i.imgur.com/Jicxz.png – Andrew

0

Có một công cụ làm biểu đồ cho MongoDB, được gọi là DbSchema. Nó phát hiện ra lược đồ bằng cách quét dữ liệu từ db. Tôi cũng sẽ đề xuất thử hai tính năng từ chúng:

  • quan hệ ảo cho phép khám phá dữ liệu từ các bộ sưu tập khác nhau trong cùng một thời điểm. Một loại JOIN giữa các bộ sưu tập khác nhau.
  • Tài liệu HTML, chúng tôi cũng sử dụng tài liệu này trong bản trình bày - các nhận xét ở dạng di chuột qua (các diarams được lưu dưới dạng hình ảnh vectơ).
Các vấn đề liên quan