背景
最近公司扩展了很多国外客户,那么一个很严重的问题就是翻译,对于国外客户来说,肯定看不懂中文,那就要项目中提供切换各自国家语言的功能。
由于每个项目都是各自写自己的翻译,所以这块比较混乱。对于公司来说,肯定是希望能写一个中间件,提供翻译功能,以供其他项目使用。这样一来,大家都方便,而且还可以统一管理翻译模块。那么,我们组就临危受命,接下了这个任务。
每个项目中的界面上的文案或提示信息是调用翻译中心,而具体的查询信息是由各自项目自己来存储的。
第一件事情要考虑数据层面的就是,数据库应该如何选择。第一个需求是,项目中的文案或提示信息数不胜数,而且他们是通过JSON来存放的。第二个需求是数据之间没有任何关系,比如项目1存放的数据和项目2存放的数据没有关系。
基于上面两点,我们放弃了传统的关系型数据库,选择了NOSQl数据库中的文档存储——MongoDB。
MongoDB是什么?
MongoDB并非芒果的意思,而是源于 Humongous(巨大)一词。意为可以存储海量数据。
数据存储格式
MongoDB使用的是JSON文档来存储记录,filed-value的配对关系。空说没概念,咱直接上图。
对比
对比
那我们来对比一下关系型数据库和MongoDB的差别:
关系型数据库 | MongoDB |
---|---|
数据量太多,易造成性能瓶颈 | 速度超快 |
表之间存在关系,需要各种连接查询 | 表之间没有关系 |
需要定义表结构再使用 | 没有表结构 |
表中数据必须一致 | 随便是什么数据 |