【发布时间】:2014-05-20 01:05:56
【问题描述】:
我有一个关于 MongoDB 数据库设计的问题。
据我所知(我不确定我是否正确),没有必要使用集合之间的关系。例如,我为用户收集了他们的电子邮件,并且我想将电子邮件模板发送给用户。
我是否应该使用我避免冗余的旧范式并设计 3 个这样的集合:
Users: ID,Name,Email
Templates: ID,Contents
EmailSent: UserID,TemplateID
或者应该像这样使用 Nosql 范式:
Users: ID,Name,Email
Templates: ID,Contents
EmailSent: UserID,Contents
区别仅在于电子邮件发送的集合。我根据MongoDB设计架构寻找明确的答案,不是个人意见
【问题讨论】:
-
NoSQL 是一个非常广泛的数据库类型类别。因此,MongoDB 可能有一个特定的答案(也许你应该用 mongdb 标记你的问题),但一般来说 NoSQL 没有。最适合 MongoDB 的东西可能不适用于 Cassandra、Neo4J、CouchBase 等。
-
我同意 DNA。我冒昧地将问题中的“NoSQL”替换为“MongoDB”,因为这将为您提供更多有用的答案。我还将“Table”替换为“Collection”,因为这是 MongoDB 中的正确术语。