宠物商城管理系统数据库概念模型设计(MongoDB适合做商城app数据库吗)

admin|
80

数据在关系型数据库中都是通过表的格式展现,而MongoDB中的数据,也就是关系型数据库和MongoDB配合着使用,数据库并不是随意地将数据进行存放,这并没有发挥MongoDB数据结构自由的优势,而MongoDB在事务的支持上,MongoDB更多适用于大数据量、高并发、弱事务、数据结构“随意”且“善变”的场景,MongoDB适合做商城app数据库吗个人认为。

MongoDB适合做商城app数据库吗

个人认为,MongoDB不太适合用作商城APP的数据库:

  • 能用是肯定能用的,但是不适合,开发过程中需要解决的问题会比较多且严峻;

  • 单独只使用MongoDB是不适合的,可以用它解决一部分的问题,也就是关系型数据库和MongoDB配合着使用。

MongoDB是什么,以及它的优点

概括地说一下MongoDB是什么:它是一个基于分布式文件存储的非关系型数据库;我们常见的MySQL、Oracle都是关系型数据库,数据在关系型数据库中都是通过表的格式展现,可以看做二维表格;而MongoDB中的数据,类似于JSON格式(BSON)。

MongoDB除了性能上的优势之外,我认为最大的优点就是数据模式自由,如果你愿意的话,可以将任何数据都保存到同一张表中(MongoDB中叫做Collection,等同于关系型数据库中的Table);

比如像这样,一条客户信息,一条产品信息,两条毫无交集的数据,可以保存到同一个Collection中(比较极端的做法,实际使用的时候还是要区分开):

为什么说MongoDB不太适合用作商城应用的数据库

  • 首先,商城应用对事务一致性要求非常高,而MongoDB在事务的支持上,比较晚熟;MongoDB在3.0左右的版本,开始支持单文档的事务,到了4.0以上的版本,开始支持多文档事务;MongoDB发展的越来越好,但是在事务支持上,和关系型数据库相比确实还是有差距。

  • 第二,通常商城相关的业务,表结构相对都是比较成熟且固定的,比如客户表、商品表、订单表、支付表等等,同一个维度的数据结构基本都是相同的,比如客户都会有姓名、手机号、收货地址,这并没有发挥MongoDB数据结构自由的优势,关系型数据库已经可以很好地支撑。

  • 第三,MongoDB在多表关联方面,优势不大,比如需要查询客户下面所有的订单,那么可能需要关联客户表和订单表;而让MongoDB来实现,订单可以作为客户下面的一个子文档来存储,大概就是这个样子:

总结来说,MongoDB更多适用于大数据量、高并发、弱事务、数据结构“随意”且“善变”的场景,是对关系型数据库的补充。


我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

数据库有什么用

数据库有什么用?

我归纳和整理3点数据库的作用,欢迎阅读:

  1. 可以用来存放数据。就像我们平时见过的粮仓、车库之类的,数据库通俗地讲就是存放数据的仓库,它的存储空间很大,可以存放上亿条数据。
  2. 可以组织和管理数据。数据库并不是随意地将数据进行存放,是有一定的规则的,像一个图书馆一样,对数据进行分类,按照一定的数据结构,把不同类型的数据放在在不同的子库里,能更好的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。
  3. 方便用户对数据进行操作。数据库以一定方式把数以亿计的数据储存在一起,建立能与多个用户共享和在不同应用程序间彼此独立的数据集合,可以作为一个电子化的文件柜,下属的个体或小单位按照一定的规则和拥有的权限,可以对文件柜中的数据进行新增、查询、更新、删除等一系列操作。

欢迎在评论区补充数据库的其他作用,或者发表不同的观点。爱科普的阿壮期待和你交流。