mongodb与mysql传统的关系数据库区别

来源:互联网 发布:weixin js sdk 编辑:程序博客网 时间:2024/06/05 23:02

mongodb与mysql命令对比 传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,

MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。

MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。

MongoDB设计模式的一些考虑

可根据用户要求设计架构。合并对象为一个文件,如果要将它们放在一起。否则分开它们(但确保不需要连接)。重复数据(有限),因为磁盘空间便宜(相比计算时间)。不需要连接写入,而是读。优化架构是最常见的用例。在模式上做复杂的聚集。

例子

假设一个客户端需要一个数据库设计,设计一个博客网站,来看看 RDBMS 和 MongoDB 架构设计之间的差异。网站有以下要求。

每一个文章内容都有独特的标题,描述和网址。每一个文章内容可以有一个或多个标签。每一个文章内容都有其出版商总数喜欢的名称。每一个文章内容有评论以及名字,消息,时间和喜欢的用户。对于每个文章,可以是零个或多个评论。

上述要求在RDBMS模式设计,将有至少三个表。
RDBMS Schema Design
这里写图片描述

在MongoDB 模式设计就文章一个集合,并具有以下结构:

{
_id: POST_ID
title: TITLE_OF_POST,
description: POST_DESCRIPTION,
by: POST_BY,
url: URL_OF_POST,
tags: [TAG1, TAG2, TAG3],
likes: TOTAL_LIKES,
comments: [
{
user:’COMMENT_BY’,
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
},
{
user:’COMMENT_BY’,
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
}
]
}

因此,尽管RDBMS要显示数据,需要加入三个表,而在MongoDB数据只是从一个集合。

0 0