時間:2024-03-09 11:50作者:下載吧人氣:21
可能大家對 PostgreSQL這個關系型數據庫不太熟悉,因為大部分人最熟悉的,公司用的最多的是 MySQL
我們先對PostgreSQL數據庫 (下面簡稱 PG
)簡單的介紹一下,以后有機會,再單獨寫一篇專門介紹pgSql的文章
The World's Most Advanced Open Source Relational Database
這是PG
官網對自己的介紹,是的,你沒有看錯,“世界上最先進的開源關系型數據庫”。一段嚴重違反我國廣告法的話,上一個敢那么叫囂的技術是PHP
,“世界上最好的語言”,然后這句話就成了碼農界最廣為人知的梗,存在于各種笑料中。
不過PG
并沒有因為這樣明目張膽地自吹自擂而遭到什么抨擊或調侃,事實上,無論在務實的碼農界,抑或是講究章法的學術界,人們對PG
都是贊許有加,PG
是完全當得起這句話的。
Oracle
數據庫,所有 PostgreSQL 的功能和性能是非常強的。還有很多的特性,這里只簡單的寫幾個,上面的幾個特點也是我非常在意的,之所 www.helloworld.net
此次改版把Mysql換成了PostgreSQL ,就是有這些原因。
之前很多人問過,hellworld開發者社區 改版用到了哪些技術棧,其中之一,就是把 Mysql
換成了 PostgreSQL
在改版的過程中,所有的表全部重新設計,這對于后端來說,是一個極其需要勇氣的決定,好在我們堅持下來了
在改的過程中,其中有這樣一個場景:
一篇博客,有多個標簽 ,比如 一個博客,有多線程, 并發 , 線程池 這三個標簽
對于這樣的需求,我們可以分析一下
這樣就形成了 多對多
的關系,建表的話,就會有一張關聯表,大部分會想到這樣建表
博客表: blog
標簽表: tag
標簽博客表: tag_blog
其中各表的字段,如下(簡單起見,只列出最少的列):
blog
表:
tag
表:
tag_blog
:
上面這個博客標簽需求,需要 3 張表,我們知道,PostgreSQL 的列的類型是支持數組類型
的
我們是不是可以優化一下上面的需求,把 3 張表變成 1 張表
只保留一張 blog 表,在 blog 表中增加一列 tags , 類似就是 text[ ]
新的博客表字段如下:
blog
表:
為了方便大家測試,建表SQL 如下
CREATE TABLE IF NOT EXISTS public.blog
網友評論