Mysql 关系型或面向文档的数据库更适合
我正在构建一个项目,用户可以选择多个项目并将它们添加到集合中,他可以共享这些集合。到目前为止,数据库如下所示: 我开始考虑使用以下结构将其切换到MongoDB:Mysql 关系型或面向文档的数据库更适合,mysql,node.js,mongodb,compare,database,Mysql,Node.js,Mongodb,Compare,Database,我正在构建一个项目,用户可以选择多个项目并将它们添加到集合中,他可以共享这些集合。到目前为止,数据库如下所示: 我开始考虑使用以下结构将其切换到MongoDB: Sets Collection: { _id: ObjectId("51e06e788abe12d1070352351"), name: "somename", //name of the set uid:
Sets Collection:
{
_id: ObjectId("51e06e788abe12d1070352351"),
name: "somename", //name of the set
uid: "df4naL3_", // shortID for the URL
createdby: ObjectId("51e06e788abe12d107000001"), //mongoId of the user
items: {
[{
_id: ObjectId("51e06e788abe12d1070352351"),
category: "Dress",
title: "some title",
price: "33",
image: "someimage.png",
buyLink: "http://"
}]
}
}
Items Collection:
{
_id: ObjectId("51e06e788abe12d1070352351"),
category: "Dress",
title: "some title",
price: "33",
image: "someimage.png",
buyLink: "http://"
}
问题
老实说,您的最终用户可能不会在意,而且在大多数应用程序的负载情况下,您可能不会注意到执行速度的差异。我的建议是使用您熟悉的工具,直到负载和使用情况要求您开始优化。这是众所周知的好问题之一。根据我的经验E-DBS是大多数解决方案的最佳选择。它们是成熟的,查询语法是直观的,有很多工具可以用来加速开发过程并确保解决方案是稳健的。人们应该有充分的理由考虑NoSQL数据库。这不是我不喜欢NoSQL,我真的这样做,我在使用I。最常见的原因是复杂的数据模式、性能等。你为什么开始考虑在你的项目中使用NoSQL?这个问题的答案也是你在这里发布的问题的答案。我建议用谷歌搜索“何时使用mongo”对我来说,NoSQL在默认情况下不是一个工具,它更像是一个解决特定问题的工具 关于你的职位:
谢谢你的回答。我只想问1-2个问题让我明白。我对MongoDB比较熟悉,但是如果我使用我提到的以下结构,很多集合都会有重复的数据。这种架构不会占用很多存储空间吗?你说得对,但这在NoSQL设计中并不像在relat中那样是不允许的更新重复记录会让你承担更多的责任,当然,如果空间是一个问题,那么你可以通过存储引用来建模。