2011-12-20 27 views
5

Tôi đang trong quá trình đánh giá MongoDB cho một dự án cá nhân. Tôi đang đặt cùng một trang web cho phép người dùng đăng ký và lưu trữ thông tin trên máy chủ của tôi.MongoDB + Ứng dụng web: Cơ sở dữ liệu cho mỗi người dùng

Trong khi đánh giá MongoDB tôi thấy rằng nó có thể tạo cơ sở dữ liệu khi đang di chuyển, lần đầu tiên bản ghi được chèn vào. Điều đó khiến tôi nghĩ rằng tôi có thể tách dữ liệu cho từng người dùng thành cơ sở dữ liệu của riêng họ. Tên cơ sở dữ liệu sẽ được lấy từ id duy nhất của người dùng. Sau khi người dùng đăng ký, lần đầu tiên họ lưu trữ thông tin cơ sở dữ liệu của họ sẽ được tạo.

Có ai biết đây có phải là thiết kế khả thi với MongoDB không? Sẽ tốt hơn nếu chỉ lưu trữ tất cả dữ liệu của người dùng trong một cơ sở dữ liệu duy nhất?

+0

Tại sao không sử dụng cấp thấp hơn tiếp theo, các bộ sưu tập? Cơ sở dữ liệu duy nhất cho mỗi người dùng có vẻ hơi tốn kém cho tôi. Và tại sao - nói chung - phá vỡ dữ liệu người dùng trong các cửa hàng khác nhau? Trong hầu hết các trường hợp, bạn tách riêng dữ liệu theo loại và không theo quyền sở hữu, sẽ không? – asaaki

+0

MongoDB 2.2.0 giới thiệu khóa cấp cơ sở dữ liệu. Nếu bạn đang lưu trữ các loại tài liệu khác nhau cho mỗi người dùng (sẽ có bộ sưu tập của riêng họ), thì cơ sở dữ liệu cho mỗi người dùng có thể vẫn khả thi. Nếu bạn đang sử dụng nhiều cơ sở dữ liệu, đừng quên điều này: http://www.mongodb.org/display/DOCS/Too+Many+Open+Files#TooManyOpenFiles-Estimatingulimitsetting –

Trả lời

4

Có, một bộ sưu tập duy nhất tốt hơn, theo cách đó bạn có thể sử dụng lập chỉ mục cho lợi thế của mình.

Lặp lại danh sách cơ sở dữ liệu hoặc bộ sưu tập sẽ luôn mất thời gian O (N) trong khi bạn có thể đạt được thời gian O (log N) để tìm tài liệu riêng lẻ bằng chỉ mục.

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