MongoDB 数据建模

2024年11月21日 MongoDB 数据建模 极客笔记

MongoDB 数据建模

在MongoDB中,数据具有灵活的模式。这与SQL数据库完全不同,因为在插入数据之前,你需要确定和声明表的模式。MongoDB集合不强制执行文档结构。

数据建模的主要挑战是平衡应用程序的需求、数据库引擎的性能特征和数据检索模式。

在设计MongoDB的模式时,请考虑以下事项

  • 根据用户需求设计模式。
  • 在写入操作上进行连接,而不是在读取操作上进行连接。
  • 将要共同使用的对象合并成一个文档。否则,它们应该分开(确保不需要连接操作)。
  • 对频繁使用的用例进行优化。
  • 在模式中进行复杂的聚合操作。
  • 在限制内复制数据,因为磁盘空间比计算时间更便宜。

例如:

让我们以一个客户的例子来说明,他需要一个用于他的网站的数据库设计。他的网站具有以下要求:

每个帖子都是独特的(包含唯一的标题、描述和URL)。

每个帖子可以有一个或多个标签。

每个帖子都有其发布者的姓名和点赞数。

每个帖子可以有零个或多个评论,评论必须包含用户姓名、消息、日期时间和点赞数。

对于上述要求,关系型数据库管理系统(RDBMS)需要至少三个表。

在MongoDB中,架构设计将有一个名为”post”的集合,具有以下结构:

{
_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
}}}

本文链接:http://so.lmcjl.com/news/18283/

展开阅读全文