資料庫設計的幾個原則

2021-06-27 04:07:15 字數 1082 閱讀 3788

資料庫設計在系統開發過程中非常重要,他的每乙個結構的設計都會影響大系統的開發,運營,修改,擴充套件。

在實際設計過程中,我們應該根據實際需要來設計,但應該遵循一些原則,以下是我的一些經驗。

1,應盡量遵循三大正規化,但也不應墨守成規,應根據自己的需要來適當修改

舉個例子,比如現在我們想設計乙個酒店預訂系統,我們需要判斷房間是不是有熱水澡,wifi,洗漱用品等。

根據第一正規化,我們需要將這些設計成單獨的字段來儲存,如下:

type

is_wifi

is_bath

is_wash

標準間111

大床間011

這就有乙個問題,就是如果我們想擴充,比如想增加是不是有電視,那就需要增加乙個字段,這樣的話我們

可以設計乙個欄位來儲存,稱為房間資訊,用規則約束來判斷資訊。比如

type

room_info

標準間1,1,1

大床房0,1,1

那麼我們想增加判斷時就可以在room_info中增加資訊,而不用修改**。

2,核心資料庫設計不應過於複雜,但應注意可擴充套件性。

如果思考的問題過多會影響到整個系統的結構,也會拖慢開發的進度。比如寫乙個部落格系統,會考慮「贊」的做法,

以及重複贊的問題,事實上他並不是乙個核心的問題,並不影響整個部落格系統的運作,可以留作擴充套件。比如會考慮「tag」

的做法,可能我們會新建一張tag表,記錄每個tag的數量,用於最熱最火標籤等等,而這樣的做法會讓你的開發非常複雜,

每加乙個文章你就要至少操作兩張表,刪乙個文章也是,而最熱tag搜尋可以用其他的方法代替,比如搜尋引擎的做法。

3,資料庫物件要有統一的字首名

、位乙個比較複雜的應用系統,其對應的資料庫表往往以千計。若讓資料庫管理員看到物件名就了解這個資料庫物件所起的作用,

恐怕會比較困難。而且在資料庫物件引用的時候,資料庫管理員也會為不能迅速找到所需要的資料庫物件而頭疼。

我們可以在核心模組加入core字首,商品系統加b,支付系統加f ,如core_f_order以前就可以看打出核心模組的支付系統的訂單表

core_b_goods核心模組的商品系統的商品表

資料庫設計原則

高效資料庫的設計原則 讀寫分離原則。這裡的讀寫分離是指,讀多寫少的字段與寫多讀少的字段分開存放於不同的表。按照磁碟的工作原理,磁碟是以扇區為單位存放資料的,並且有寫緩衝 排隊 延遲寫入的特點。資料庫是以記錄為單位的,每次訪問,總是將整行記錄讀入緩衝區,再依命令所需的字段從中篩選資料,組成返回的記錄行...

資料庫設計原則

1.原始單據與實體之間的關係 可以是一對 一 一對多 多對多的關係。在一般情況下,它們是一對一的關係 即一張原始單據對應且只對應乙個實體。在特殊情況下,它們可能是一對多或多對一的關係,即一張原始單證對應多個實體,或多張原始單證對應乙個實體。這裡的實體可以理解為基本表。明確這種對應關係後,對我們設計錄...

資料庫設計原則

1 三正規化規則 1nf 表中的列不可分割。2nf 資料表中的每一行,都應該有唯一的標識。即每一行都應有主鍵區分,不要出現冗餘行 3nf 資料表中的所有非關鍵字段,必須依賴於主鍵。即不要出現冗餘列 總結三正規化的核心思想 不要出現冗餘資料。資料庫設計的核心原則 即要考慮資料庫的儲存空間,又要考慮查詢...