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