偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

關(guān)系型數(shù)據(jù)庫設(shè)計規(guī)范感悟

數(shù)據(jù)庫
在設(shè)計關(guān)系型數(shù)據(jù)庫時,我們從課上的學(xué)習(xí)得知,需要參照不同的范式及原則,設(shè)計表結(jié)構(gòu)與表關(guān)系。

前言

 在設(shè)計關(guān)系型數(shù)據(jù)庫時,我們從課上的學(xué)習(xí)得知,需要參照不同的范式及原則,設(shè)計表結(jié)構(gòu)與表關(guān)系。在課上,我們關(guān)注的角度更多是,設(shè)計要符合范式,保證數(shù)據(jù)不冗余。但在實際的開發(fā)設(shè)計中,我們往往要從更多角度思考數(shù)據(jù)庫的設(shè)計原則,根據(jù)不同的需求場景,進(jìn)行不同角度的側(cè)重。比如開發(fā)是否便捷,表結(jié)構(gòu)是否易維護(hù),查詢效率是否達(dá)到要求等等。

[[378474]]

設(shè)計原則

一般的企業(yè)級應(yīng)用數(shù)據(jù)庫中,對于數(shù)據(jù)的冗余是有一定容忍性的,但對于數(shù)據(jù)庫增刪改查的效率,往往會有很高的要求。這時候,我們之前遵循的一些原則,就要做出不同程度的改變。比如,之前依據(jù)少冗余原則,參考的設(shè)計三大范式,可能在數(shù)據(jù)庫增刪改查效率的面前,就要做一些妥協(xié)了。

在設(shè)計能容忍冗余、重視效率的數(shù)據(jù)庫時,個人認(rèn)為,主要需要考慮以下幾方面:

1、每個表增刪改的范圍盡量都在本表進(jìn)行

這條原則也是與三大范式有些相悖的,但這樣做的好處非常明顯。

第一,還是從開銷角度出發(fā),這樣做的話,增刪改的開銷通常比多表要低。

第二,這樣便捷開發(fā),在數(shù)據(jù)存儲過程中,如果涉及多表操作,表越多,處理業(yè)務(wù)邏輯的代碼就越多,在開發(fā)時難度也就越大。

第三,可維護(hù)性高,這一點和第二點有點重合,但就是因為單表設(shè)計的業(yè)務(wù)代碼會相對簡單,所以日后的維護(hù)也會相對容易,反之,多表的業(yè)務(wù)代碼龐雜,日后的維護(hù)也會非常的困難。

2、通過主鍵體現(xiàn)對應(yīng)關(guān)系,且應(yīng)體現(xiàn)流程順序

企業(yè)級應(yīng)用最大的難題就是梳理業(yè)務(wù),理清業(yè)務(wù)模塊之間的對應(yīng)關(guān)系。在數(shù)據(jù)庫中,表中包含的主鍵除了要體現(xiàn)對應(yīng)關(guān)系外,還應(yīng)該體現(xiàn)生成順序或流程順序的邏輯。

3、每個表盡量代表一個業(yè)務(wù)模塊,盡量記錄模塊中的所有字段

由第一個原則推理出這個原則,因為在本表增刪改查的開銷小,所以,如果一個表足夠的內(nèi)聚,那么這個表就要盡量記錄模塊中的所有字段。

tips:

如果之后業(yè)務(wù)模塊內(nèi)字段過多,可以進(jìn)行分表處理,但如果一開始就是分開設(shè)計的,那么處理會很麻煩。

4、中間表不可以隨意使用

在充分遵循三大范式的前提下,我們的設(shè)計就會有很多的中間表(關(guān)系表)。但如果在兩個表中,其中有一個表增刪改頻繁,那么從效率角度而言,這樣的設(shè)計就是不合格的。這樣的設(shè)計確實會減少很多數(shù)據(jù)冗余,但是也會大大增加每條數(shù)據(jù)增刪改的開銷。所以從一般的企業(yè)級應(yīng)用場景來看,中間表不可以隨意使用。

通過了解中間表的使用缺陷,我們也就知道了什么時候可以使用中間表。當(dāng)左表和右表都沒有非常頻繁的改動需求,但有非常頻繁的聯(lián)表查詢需求的時,我們就可以運(yùn)用中間表,來提升查詢效率,并減少數(shù)據(jù)冗余。

[[378475]]

總結(jié)

經(jīng)過了幾次設(shè)計我發(fā)現(xiàn)一個大道理哈哈,其實技術(shù)最后還是要為具體的業(yè)務(wù)場景服務(wù)。很多計算機(jī)問題都是需要時間和空間的開銷相互妥協(xié),在具體的業(yè)務(wù)場景中,往往也是如此。三大范式只是一般設(shè)計數(shù)據(jù)庫的基本理念,通過三大范式,我們可以建立一個小冗余、表結(jié)構(gòu)合理的數(shù)據(jù)庫,但就像之前說的,表結(jié)構(gòu)合理不代表符合業(yè)務(wù)需求,如有特殊業(yè)務(wù)情況,就要按特殊情況對待。

一般而言,需求 > 性能 > 表結(jié)構(gòu)(冗余)。

 

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2014-08-29 10:24:05

SQL Server

2010-04-12 15:53:09

Oracle

2010-05-11 18:57:53

MYSQL數(shù)據(jù)庫命名

2011-08-12 14:18:38

SQL Server數(shù)設(shè)計規(guī)范

2010-04-19 12:35:01

Oracle數(shù)據(jù)庫設(shè)計

2009-01-13 10:50:19

數(shù)據(jù)庫設(shè)計規(guī)范化

2022-12-27 08:38:45

關(guān)系型數(shù)據(jù)庫設(shè)計

2018-07-18 09:16:39

關(guān)系型非關(guān)系型數(shù)據(jù)庫

2015-07-28 10:33:17

.NETERP系統(tǒng)

2015-08-04 09:20:42

.NET數(shù)據(jù)庫設(shè)計規(guī)范

2024-04-25 09:14:57

數(shù)據(jù)庫Mysql阿里巴巴

2021-09-06 10:24:12

鴻蒙HarmonyOS應(yīng)用

2010-04-27 16:31:41

Oracle數(shù)據(jù)庫

2019-10-12 00:39:23

MySQL數(shù)據(jù)庫Oracle

2017-03-17 14:44:04

關(guān)系型數(shù)據(jù)庫原理

2010-12-10 10:17:21

關(guān)系型數(shù)據(jù)庫

2022-06-13 08:30:01

數(shù)據(jù)庫管理系統(tǒng)

2013-03-28 10:22:33

數(shù)據(jù)庫關(guān)系型數(shù)據(jù)庫數(shù)據(jù)庫設(shè)計

2022-05-01 21:43:38

SQL設(shè)計模式

2024-06-06 16:50:15

點贊
收藏

51CTO技術(shù)棧公眾號