目录

背景

对比

MongoDB的数据存储格式


背景

最近公司扩展了很多国外客户,那么一个很严重的问题就是翻译,对于国外客户来说,肯定看不懂中文,那就要项目中提供切换各自国家语言的功能。

由于每个项目都是各自写自己的翻译,所以这块比较混乱。对于公司来说,肯定是希望能写一个中间件,提供翻译功能,以供其他项目使用。这样一来,大家都方便,而且还可以统一管理翻译模块。那么,我们组就临危受命,接下了这个任务。

每个项目中的界面上的文案或提示信息是调用翻译中心,而具体的查询信息是由各自项目自己来存储的。

第一件事情要考虑数据层面的就是,数据库应该如何选择。第一个需求是,项目中的文案或提示信息数不胜数,而且他们是通过JSON来存放的。第二个需求是数据之间没有任何关系,比如项目1存放的数据和项目2存放的数据没有关系。

基于上面两点,我们放弃了传统的关系型数据库,选择了NOSQl数据库中的文档存储——MongoDB。

对比

那我们来对比一下关系型数据库和MongoDB的差别:

关系型数据库 MongoDB
数据量太多,易造成性能瓶颈 速度超快
表之间存在关系,需要各种连接查询 表之间没有关系
需要定义表结构再使用 没有表结构
表中数据必须一致 随便是什么数据

MongoDB是什么?

MongoDB并非芒果的意思,而是源于 Humongous(巨大)一词。意为可以存储海量数据。

MongoDB的数据存储格式

MongoDB使用的是JSON文档来存储记录,filed-value的配对关系。空说没概念,咱直接上图。

MongoDB入门系列之科普篇的更多相关文章

  1. MongoDB入门系列(一):基础概念和安装

    概述 MongoDB是目前非常流行的一种非关系型数据库,作为入门系列的第一篇本篇文章主要介绍Mongdb的基础概念知识包括命名规则.数据类型.功能以及安装等. 环境: OS:Windows Versi ...

  2. MongoDB入门系列(二):Insert、Update、Delete、Drop

    概述 本章节介绍Insert.Update.Delete.Drop操作基本语法. 环境: Version:3.4 insert insert()基本语法如下: db.collection.insert ...

  3. MongoDB入门系列(三):查询(SELECT)

    一.概述 mongodb是最接近关系型数据库的NOSQL数据库,它的存储方式非常的灵活:以至于你会将它看成是一个经过冗余过的关系型数据库的表,这也是Mongodb原子性的一个特征.由于没有关系型数据库 ...

  4. MongoDB入门系列(四):权限管理

    一.概述 本篇文章主要介绍如何创建用户和角色相关概念,同时对角色的添加和删除做了相关介绍. 版本:3.6.2 二.角色相关概念 1.数据库用户角色 read:该角色拥有数据的只读权限,系统集合以及sy ...

  5. MongoDB入门系列:复制机制

    一.复制原理 MongoDB的复制功能是使用操作日志oplog实现的,oplog包含主节点(Master)的每一次写操作,oplog是local本地数据库中的一个数据集合,其它非主节点(Seconda ...

  6. k8s入门系列之介绍篇

    •Kubernetes介绍1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器的快速轻量 - 完整的生态环境2.什么是ku ...

  7. SpringBoot入门系列:第一篇 Hello World

    跟随SpringBoot的文档(http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-d ...

  8. c#入门系列——番外篇:vs的安装与使用

    vs的安装 1.安装条件          vs全称visual studio 它是一个开发平台,不仅可以用于c#开发,别的也可以.安装vs前,首先需要一个安装包.安装包可以在网上下载.没有购买版权的 ...

  9. k8s 入门系列之介绍篇

    •Kubernetes介绍1.背景介绍 云计算飞速发展 - IaaS - PaaS - SaaS Docker技术突飞猛进 - 一次构建,到处运行 - 容器的快速轻量 - 完整的生态环境2.什么是ku ...

随机推荐

  1. Agentless监控实践中的预警指标采集

    很多公司已经开发了监控解决方案,解决了指标收集.展示.预警发送等一系列问题. 本文介绍的监控解决方案由高性能时序数据库InfluxDB.时序分析监控工具Grafana及Agentless自动化工具An ...

  2. JAVA解除tomcat 对浏览器特别字符 | () {} [] 的限制

    1.打开tomcat本机地址打开conf文件夹(一定要关闭Tomcat启动在修改) 2.记事本打开或者编辑软件打开(我这里推荐的编辑软件是以下如图) 打开进去加入这两行代码 3打开server.xml ...

  3. Jedis操作Redis--Hash类型

    /** * Hash(哈希表) * HDEL,HEXISTS,HGET,HGETALL,HINCRBY,HINCRBYFLOAT,HKEYS,HLEN,HMGET,HMSET, HSET,HSETNX ...

  4. Java8新特性_lambda表达式和函数式接口最详细的介绍

    Lambda表达式 在说Lambda表达式之前我们了解一下函数式编程思想,在数学中,函数就是有输入量.输出量的一套计算方案,也就是“拿什么东西做什么事情”. 相对而言,面向对象过分强调“必须通过对象的 ...

  5. 证书pfx转jks

    keytool -importkeystore -srckeystore  2756649_order.hanels-home.com.pfx -srcstoretype pkcs12 -destke ...

  6. HDU-6333 Problem B. Harvest of Apples 莫队

    HDU-6333 题意: 有n个不同的苹果,你最多可以拿m个,问有多少种取法,多组数据,组数和n,m都是1e5,所以打表也打不了. 思路: 这道题要用到组合数的性质,记S(n,m)为从n中最多取m个的 ...

  7. 牛客练习赛17 B-好位置

    传送门 题意:本来惯例中文题不解释的, 但是有些人不懂这个题意, 简单的来说, 就是s1每一个的每一个字符都可以和别的字符构成一个子串 == s2.  算了还是惯例中文题意不解释吧. 题解:其实以前写 ...

  8. Atcoder D - Widespread (二分)

    题目链接:http://abc063.contest.atcoder.jp/tasks/arc075_b 题解:直接二分答案然后再判断(a-b)来替代不足的.看代码比较好理解,水题. #include ...

  9. 题解 yzoj1663: 愤怒的牛(二分) yzoj1662: 曲线(三分)

    话说二分和三分的题还没有整理过,就趁这两题来整理下笔记 先讲讲关于二分,对于二分的具体边界长期以来对我来说都是个玄学问题,都是边调边拍改对的.思路大体是确定左边界l,和有边界r,判断满足条件缩小范围. ...

  10. Python 单元测试框架系列:聊聊 Python 的单元测试框架(一):unittest

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...