一、某一個連鎖商店要建置一個關聯式資料庫(Relational Database),請設計一個資料庫綱要(Database Schema)以滿足下列資料需求:
1.商店(Store):每一家商店有一個商店編號(SID)、商店名稱(Name)、以及商店所在的城市名稱(City),每一家商店的商店編號是唯一的。
2.顧客(Customer):每一位顧客有一個顧客編號(CID)、姓名(Name)、性別(Gender)、地址(Address)、以及若干個電話號碼(Phone),
每一位顧客的顧客編號是唯一的。
3.交易(Transaction):每一筆交易記錄顧客編號(CID)、商店編號(SID) 、交易日期與時間(Time)、以及交易金額(Amount),每一筆交易是由顧客編號、商店編號、以及交易日期與時間來唯一識別。
詳解 (共 1 筆)
詳解
為滿足上述資料需求,設計一個關聯式資料庫綱要如下:
1. 商店(Store)資料表
| 欄位名稱 | 資料型態 | 鍵 |
|---|---|---|
| SID | INT | PRIMARY KEY |
| Name | VARCHAR | |
| City | VARCHAR |
2. 顧客(Customer)資料表
| 欄位名稱 | 資料型態 | 鍵 |
|---|---|---|
| CID | INT | PRIMARY KEY |
| Name | VARCHAR | |
| Gender | CHAR(1) | |
| Address | VARCHAR |
3. 顧客電話號碼(CustomerPhone)資料表
| 欄位名稱 | 資料型態 | 鍵 |
|---|---|---|
| CID | INT | FOREIGN KEY REFERENCES Customer(CID) |
| Phone | VARCHAR | PRIMARY KEY (CID, Phone) |
4. 交易(Transaction)資料表
| 欄位名稱 | 資料型態 | 鍵 |
|---|---|---|
| CID | INT | FOREIGN KEY REFERENCES Customer(CID) |
| SID | INT | FOREIGN KEY REFERENCES Store(SID) |
| Time | DATETIME | PRIMARY KEY (CID, SID, Time) |
| Amount | DECIMAL |
CREATE TABLE Store (
SID INT PRIMARY KEY,
Name VARCHAR(255),
City VARCHAR(255)
);
SID INT PRIMARY KEY,
Name VARCHAR(255),
City VARCHAR(255)
);
CREATE TABLE Customer (
CID INT PRIMARY KEY,
Name VARCHAR(255),
Gender CHAR(1),
Address VARCHAR(255)
);
CID INT PRIMARY KEY,
Name VARCHAR(255),
Gender CHAR(1),
Address VARCHAR(255)
);
CREATE TABLE CustomerPhone (
CID INT,
Phone VARCHAR(20),
PRIMARY KEY (CID, Phone),
FOREIGN KEY (CID) REFERENCES Customer(CID)
);
CID INT,
Phone VARCHAR(20),
PRIMARY KEY (CID, Phone),
FOREIGN KEY (CID) REFERENCES Customer(CID)
);
CREATE TABLE Transaction (
CID INT,
SID INT,
Time DATETIME,
Amount DECIMAL(10, 2),
PRIMARY KEY (CID, SID, Time),
FOREIGN KEY (CID) REFERENCES Customer(CID),
FOREIGN KEY (SID) REFERENCES Store(SID)
);
CID INT,
SID INT,
Time DATETIME,
Amount DECIMAL(10, 2),
PRIMARY KEY (CID, SID, Time),
FOREIGN KEY (CID) REFERENCES Customer(CID),
FOREIGN KEY (SID) REFERENCES Store(SID)
);
-
Store 資料表:儲存每家商店的基本資訊,包括唯一的商店編號(SID)、商店名稱(Name)和商店所在城市(City)。
-
Customer 資料表:儲存每位顧客的基本資訊,包括唯一的顧客編號(CID)、姓名(Name)、性別(Gender)和地址(Address)。
-
CustomerPhone 資料表:儲存顧客的電話號碼,每位顧客可以有多個電話號碼。這張表使用複合主鍵(CID, Phone)來唯一識別每個電話號碼,並且通過外鍵(CID)關聯到顧客資料表。
-
Transaction 資料表:儲存交易資訊,包括顧客編號(CID)、商店編號(SID)、交易日期與時間(Time)和交易金額(Amount)。這張表的複合主鍵是(CID, SID, Time),並且通過外鍵(CID, SID)分別關聯到顧客和商店資料表。
此資料庫綱要能夠有效地儲存並管理連鎖商店的商店資訊、顧客資訊及交易記錄。