資料庫規範化是設計資料庫結構的過程,旨在減少資料冗餘、提高資料完整性。反規範化則是為了提高資料查詢的速度和效能而有意地新增冗餘資料。
-- 規範化示例:使用者表和訂單表
CREATE TABLE Users (
UserID INT PRIMARY KEY,
UserName VARCHAR(50)
);
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
UserID INT,
OrderDate DATE,
FOREIGN KEY (UserID) REFERENCES Users(UserID)
);
-- 反規範化示例:新增冗餘資料
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
UserID INT,
UserName VARCHAR(50), -- 新增冗餘資料
OrderDate DATE
);
在規範化和反規範化的過程中,需要權衡資料的完整性和效能需求,設計出更合理有效的資料庫結構。