2020年10月从Alpha Camp毕业後,面试了好几家公司,感谢一路以来的贵人相助,小弟有幸能加入现在的公司,接到的第一个工作任务就是将资料从非关联式资料库 - MongoDB转移到关连式资料库 - PostgreSQL。
首先大致介绍一下关联式资料库(No SQL)及非关联式资料库(SQL)的差别。
非关连式资料库特点:
关联式资料库有特点:
以上介绍摘录至SQL/NoSQL是什麽?认识资料库管理系统DBMS
PostgreSQL是工作後才接触到的关联式资料库,与之前学过MySQL,两者操作操作起来满类似的,所以在转移资料库的过程中还算顺利,主要业务就是要将Mongo里面有的表格、栏位、属性建立在Postgres,遇到比较特别的事是Mongodb有一个独有的栏位 _id,资料型别:ObjectId,但PostgreSQL没有这个型别。
ObjectId 长度为 12 位元组,由几个 2-4 位元组的链结组成。每个链结代表并指定文件身份的具体内容。以下的值构成了完整的 12 位元组组合:
一个 4 位元组的值,表示自 Unix 纪元以来的秒数
一个 3 位元组的机器识别元
一个 2 位元组的程序 ID
一个 3 位元组的计数器,以随机值开始
以上摘录至Navicat 部落格
在转换资料库的过程中,需要写入自己独特的ObjectId,但碍於PostgreSQL没有这个型别,解决方式是将这个栏位以varchar的方式储存,後续新增资料时,import objectId from "objectid"
,就可以每次都新产一组objectId。
大家可能会有疑问,为什麽不在转换资料库时就直接舍弃这个ObjectId资料型别,原因其实是当时专案设计之初,就是以objectId去调用资料库的资料,所以为了减少变更资料库的疼痛感,就先以这种方式去处理。对自己来说是个不错的经验!
>>: DAY17 - [JS] 扩充功能 - 倒数计时,番茄钟
本文将於赛後同步刊登於笔者部落格 有兴趣学习更多 Kubernetes/DevOps/Linux 相...
7.3 eventual consistency 还没写QQ 这章会来聊聊 consistency...
第3天写了打字特效炫起来! 今天来个姊妹篇,手写字特效炫起来! 已经默默进入SVG几天了... 老样...
params - 命名的路由,加上参数让路由建立 url 动态的参数前要加上冒号 ":&q...
前言 说明一下bid and ask是什麽,我们这边可以怎麽使用呢? 参考网站:[Bid and A...