📅  最后修改于: 2020-11-23 00:51:50             🧑  作者: Mango
在MongoDB中,数据具有灵活的架构。它与SQL数据库完全不同,在SQL数据库中,您必须在插入数据之前确定并声明表的架构。 MongoDB集合不强制执行文档结构。
数据建模中的主要挑战是平衡应用程序的需求,数据库引擎的性能特征以及数据检索模式。
例如:
让我们以一个需要为其网站进行数据库设计的客户为例。他的网站具有以下要求:
每个帖子都是不同的(包含唯一的标题,描述和URL)。
每个帖子可以有一个或多个标签。
每个帖子都有其发布者的名称和喜欢的总数。
每个帖子可以包含零个或多个评论,并且评论必须包含用户名,消息,数据时间和喜欢。
对于上述要求,RDBMS中至少需要三个表。
但是在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: TEST,
dateCreated: DATE_TIME,
like: LIKES
}}}