資料庫設計

2021-07-10 15:59:31 字數 1495 閱讀 6481

一,資料庫設計需求階段要考慮的作用點:

1,資料是什麼?

2,資料有哪些屬性?

3,資料和屬性有哪些特點?

二,以乙個小型商務系統,一般可以分成以下幾個模組。

1,     使用者模組。2,商品模組。3,訂單模組。4,購物車模組。5,**商模組。

2,      商品模組,包括屬性:編碼,名稱,描述,品類,**商名稱,重量,有效期,**。

可唯一標識的可以是商品編碼

3,      訂單模組,訂單模組是和使用者模組密切相關的

唯一標識的屬性可以是訂單號。

4,購物車模組。   包括的屬性:使用者名稱,商品編號,商品名稱,商品**,商品描述,商品分類,加入時間,商品數量。

購物車模組中的記錄不必要永久儲存,可以定時清理。

**商和商品是多對多

使用者和訂單是一對多關係

使用者和商品也是多對多

第一正規化:

定義:資料表中的所有欄位都是單一屬性,不可再分的。換句話說就是資料表是二維表

第二正規化:

定義:資料庫的中的表不存在非關鍵字段對任一候選欄位的部分函式依賴,

部分函式依賴指的是存在著組合關鍵字中的某一關鍵字決定非關鍵字的情況

換句話說,所有單關鍵字的表都符合第二正規化

第三正規化:

傳遞依賴

資料庫物理設計

1,選擇資料庫

2,定義資料庫,表,欄位的命名規範

3,選擇字段型別

4,儲存引擎的選擇

1,myisam,不支援事務,不支援行級鎖,當進行頻繁的讀寫操作是盡量不要用

字段型別選擇的原則

1,當乙個字段可以選擇多個資料型別時,優先考慮數字型別,其次是日期或二進位制,最後是字串,優先選擇占用空間小的資料型別 2,

一般位元組在50位元組以上的時候我們不建議使用char

外來鍵

什麼是子表?具有外來鍵列的表成為子表。

具有外來鍵約束的表所用的儲存引擎必須是innodb

父表和字表必須有相同的字段型別,如果是int,必須都是int,如果是字元型,

外來鍵列和參照列必須建立索引,如果外來鍵列沒有索引的話,mysql將自動建立索引

on delete cascade 父表刪除或更新自動刪除或更新子表中的內容。

set null 父表刪除或者更新行並設定字表中的外來鍵列為null

foreign key (name)references tablename(name)定義乙個表中的乙個列是另乙個表的外來鍵

各種語句

1,insert into tablename select 條件from tablename1:聯表查詢,可以把一張表的資料匯入另一張表

資料庫設計 設計資料庫之前

1.考察現有環境 在設計乙個新資料庫時,你不但應該仔細研究業務需求而且還要考察現有的系統。大多數資料庫 專案都不是從頭開始建立的 通常,機構內總會存在用來滿足特定需求的現有系統 可能沒有實 現自動計算 顯然,現有系統並不完美,否則你就不必再建立新系統了。但是對舊系統的研究 可以讓你發現一些可能會忽略...

資料庫設計 設計資料庫之前

1.考察現有環境 在設計乙個新資料庫時,你不但應該仔細研究業務需求而且還要考察現有的系統。大多數資料庫 專案都不是從頭開始建立的 通常,機構內總會存在用來滿足特定需求的現有系統 可能沒有實 現自動計算 顯然,現有系統並不完美,否則你就不必再建立新系統了。但是對舊系統的研究 可以讓你發現一些可能會忽略...

資料庫設計 設計資料庫之前

1.考察現有環境 在設計乙個新資料庫時,你不但應該仔細研究業務需求而且還要考察現有的系統。大多數資料庫 專案都不是從頭開始建立的 通常,機構內總會存在用來滿足特定需求的現有系統 可能沒有實 現自動計算 顯然,現有系統並不完美,否則你就不必再建立新系統了。但是對舊系統的研究 可以讓你發現一些可能會忽略...