复杂数据库设计如何用好云开发提供型海量资源.pdfVIP

复杂数据库设计如何用好云开发提供型海量资源.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

本文由简悦SimpRead转码,原文地址

我们知道,大多数互联网应用产品都会不断产生各种数据(可能是用户产生的,也可能是系统自动生成

的)。要想高效保存这些数据,并维持应用产品的有效运转,就要用到数据库。

数据库是高效数据、数据的器。我们日常用到的绝大部分应用,都是把数据库放在云端,

通过应用后端服务独立控制。

数据库是后端服务架构中最主要的部分,数据库的架构设计,以及灾备机制都属于应用开发中不可或缺

一环。在项目开发初期,开发者就要做好架构设计,不过这会耗费大量的精力,从而对需要快速试错上

线的产品造成不利影响。

而在云开发中,数据库的架构设计工作几乎为0。开发者不用关心数据库怎么存取和灾备,因为云开发

会保证数据库的通信以及服务稳定。你只关心怎么在业务中用好云开发数据库就可以了。

在上一讲中我提到,云开发数据库是非关系型数据库,遵循Mongo协议,并提供丰富的操作API,满

足绝大部分业务场景下的数据操作需求。你阅读数据库API文档就可以快速上手使用云开发数据库了。

但只能用数据库可不行,我还希望你可以用好它,让它发挥更大的。所以这一讲,我就带你深度学

习怎么用好云开发数据库支持复杂应用。

如何更好地设计数据库

反范式化与范式化设计

范式化是把数据像关系型数据库一样分散到不同的集合里,不同的集合之间可以通过唯一的ID相互

数据,不过要这些数据往往要进行多次查询或使用lookup进行联表查询。

为集合比较分散(也就比较小),更新数据时可以只更新一个相对较小的文档。

由此可见,数据既可以内嵌(反范式化),也可以采用(范式化),两种策略各有优缺点,关键是

你要选择适合自己应用场景的方案。

完全反范式化可以大大减少文档查询的次数。比如你的应用数据查询比较频繁,但不用频繁更新,

那就适合完全反范式化,没必要把数据分散到不同的集合,牺牲查询的效率。

完全范式化会降低文档更新的成本。如果应用数据需要频繁更新,业务数据特别复杂,你就要对数

据库进行一定的范式化设计,不然用反范式化的设计会让集合过大,冗余数据,出现数据写入

性能差的问题。

以下是我总结的适合内嵌(反范式化)和(范式化)的情况对比,建议你根据业务情况合理设计。

认识数据库数据模式

除了结合实际情况选择范式化设计或反范式化设计之外,你还需要了解云开发数据库的数据模式,从而

更好地设计数据库结构。云开发数据库的数据模式比较灵活,主要体现在以下两点。

关系型数据库要求你在数据前必须定义好一个表的模版结构,而云开发的文档型数据库中数据

的集合collection并不限制记录document结构。

另外关系型数据库需要开发者对数据库的结构内容做描述,才可以正常运作,而云开发数据库

不需要预先,在使用时也不会限制记录的结构,同一个集合记录的字段可以有很大的差异。如

下图所示:

这种灵活性让对象和数据库文档之间的映射变得很容易,即使数据记录之间变化很大,每个文档也可以

很好地映射到不同的记录。当然了,在实际使用中,同一个集合中的文档最好都有一个类似的结构(相

同的字段、相同的内嵌文档结构)方便进行批量的增删改查以及聚合等操作。

当应用程序使用时间增长或需求出现变化,数据库的数据模式也要随之改变。为了保证数据库支持所有

旧版的模式,最简单的方式是在原有的数据模式基础之上添加字段。以用户信息表为例,假设业务要增

文档评论(0)

wx5620 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档