这是关于MongoDB : where is the limit between "few" and "many"?的后续问题。
我来自关系数据库世界,我现在正在使用MongoDB开发一个新的NoSQL项目。
编辑:我正在使用 Rails 开展此项目,并决定转移到 Meteor 进行原型设计,这需要使用 MongoDB的。我正在提供以下信息,以解释在处理项目的 Rails 版本时我在数据库架构方面提出的问题。
该项目将基于以下馆藏:
User
firstName
lastName
emailAddress
password
Calendar
title
Role
userId
calendarId
Post
calendarId
date
time
focus
format
blogTitle
longCopy
shortCopy
link
hashtag
media
promotion
target
approval
comment
user
将能够创建和管理多个calendars
,而calendar
将允许多个users
进行协作。
我相信这将是few-to-few
(而不是many-to-many
)关联,因为:
user
不应超过几十calendars
calendar
不应该有十几个users
访问模式如下:
user
的主要操作是选择calendar
并修改其内容(此给定日历中的CRUD posts
)。user
将需要访问并CRUD属于他users
之一的calendars
列表。用MongoDB构建这样一个项目的最佳方法是什么?
答案 0 :(得分:1)
其中一种设计模式是将彼此关联的日历存储在自己的文档中。它将复制日历数据,但用户交互将非常快,因为登录时他可以看到您可以在一个请求中获取的日历。
{userid : 'X1' , cal = [{} , {}]}
只有在这里抓住的是,当有人更新日历时,您必须找到具有日历的所有文档并进行更新。因此,在这种模式下读取速度很快,但写入速度很慢。
使用正确的索引可以更快地找到具有特定呼叫的文档
db.collection.update({cal.id : 123},{});