如何避免數據庫設計的一(yī)些坑,方便後期的開(kāi)發與維護

時間:2020-04-22 作者:管理員(yuán) 點擊:1008

以前經常能夠看到,數據庫範式,現在說數據庫三大(dà)範式的少了。

三大(dà)範式我(wǒ)(wǒ)以前也很嚴格的弄過,但是後來發現,還是靈活好啊,爲什麽,業務變動太快了啊,按照範式來,結構變更頂不住。

下(xià)面我(wǒ)(wǒ)就說一(yī)說設計數據庫表要注意的一(yī)些地方吧。我(wǒ)(wǒ)不是DBA,隻是Java後端開(kāi)發,以下(xià)是根據我(wǒ)(wǒ)的個人經驗所得,至于能不能體(tǐ)會,看個人了。

外(wài)鍵、觸發器

外(wài)鍵、觸發器不要有。

有了外(wài)鍵、觸發器,你會發現: 寫代碼不方便。 訂正數據不方便。 遷移數據也麻煩。 總之,你要是堅持用,後續的坑等着你。

自增id

數據庫表,一(yī)定要有id,而且要用自增id!

有些人喜歡用自定義的,用UUID或者其他七七八八的id,如果在架構設計,代碼比較好的情況下(xià),不會出啥大(dà)問題,但是一(yī)旦代碼寫的不行,極有可能就造成id重複之類的問題。

自增id另外(wài)還有一(yī)個好處,就是在數據遷移的時候,分(fēn)頁查詢通過id來進行分(fēn)頁,速度會比傳統分(fēn)頁快很多。

創建時間&修改時間

創建時間和修改時間這兩個字段,每個表都要有! 注意,一(yī)定要用數據的時間戳,自動生(shēng)成。不要通過代碼去(qù)操作這兩個字段。

有了這兩個字段。你可以追溯到數據的時間點,創建和修改的時間點。極大(dà)方便你在某些情況下(xià)的排查數據問題。

創建人&修改人

建議每個表也有這兩個字段。

還是和前面一(yī)個原因,出問題的時候可以追溯起因,否則遇上日志(zhì)過久無法查看或者其他原因出現未知(zhī)數據,都不知(zhī)道數據怎麽來的,需要花非常大(dà)的代價查看日志(zhì)、代碼等。

大(dà)文本字段

一(yī)列需要占很大(dà)空間的字段,一(yī)定要單獨拎出來,不要和常用信息放(fàng)一(yī)張表。

舉個例子: 文章的信息和文章的内容,這一(yī)定要分(fēn)成兩個表。否則會給你的文章性能帶來極大(dà)的挑戰。因爲很多情況下(xià),查看文章列表,根本不需要查看到文章的内容。

表與表的關聯

表與表之間的信息,用id進行關聯,盡量不要有冗餘的信息數據,否則你需要更新同一(yī)份信息的時候,需要更新多個地方。

但是在某些情況下(xià),你确認信息不會經常變動,且該信息确實在兩個表中(zhōng)都有會比較好,那麽,放(fàng)心的去(qù)冗餘吧。但是注意,數據的更新用上事務。

單庫單表單系統寫原則

這個原則我(wǒ)(wǒ)自己想出來的,也就是說,數據庫中(zhōng)的一(yī)張表,隻能有一(yī)個系統對其進行寫操作。 其他的系統如果想寫這張表,那麽經過調用這個系統的接口進行操作。

如果有多個系統寫同一(yī)張表,可能帶來的問題會很多。首先就是數據并發問題,其次就是事務問題,還有就是表結構變更問題,數據來源追溯問題等等。

如果誰有一(yī)張表數據想用多個系統來進行寫,那肯定是想把團隊拖垮。時間越久,債務越多!

總結

數據庫設計,标準其實是在變的,不變的隻是思想。

業務場景不同,實際需求不一(yī)樣,不會存在一(yī)樣的設計,但是通用的思想都是一(yī)樣的,爲業務服務,爲未來服務,方便維護,方便擴展。

這條路很長,隻能慢(màn)慢(màn)在路上體(tǐ)會了。
返回列表
在線溝通

Are you interested in ?

感興趣嗎(ma)?

有關我(wǒ)(wǒ)們服務的更多信息,請聯系

136 7365 2363(同微信) 13140187702

鄭州網站建設鄭州網站設計鄭州網站制作鄭州建站公司鄭州網站優化--聯系索騰

與我(wǒ)(wǒ)們合作

鄭州網站建設鄭州網站設計鄭州網站制作鄭州建站公司鄭州網站優化--與索騰合作,您将會得到更成熟、專業的網絡建設服務。我(wǒ)(wǒ)們以客戶至上,同時也相互挑戰,力求呈現最好的品牌建設成果。

業務咨詢熱線:

136 7365 2363

TOP

QQ客服

在線留言