iT邦幫忙

2025 iThome 鐵人賽

DAY 28
0

之後會做出一個簡單的餐廳預約資料表來當作簡單的練習
名稱 資料型態 說明
Reservation_ID INT 預約編號
NAME VARCHAR(50) 顧客姓名
PHONE VARCHAR(20) 電話
REVERSATION_DATE DATE 預約日期
TIME VARCHAR(10) 預約時間(例如 18:00)
TABLE_NUMBER NUMBER 桌號
PEOPLE_AMOUNT NUMBER 用餐人數
MEAL VARCHAR(255) 訂餐內容(例如:「牛排, 沙拉, 果汁」)
TOTAL DECIMAL(10,2) 總金額

因為資料內容不是單一元素,所以要先經歷第一正規化
因為一個人可能會點多樣餐點,所以要把食物拆開
舉例:
預約表
Reservation_ID Customer_Name Phone Reservation_Date Time Table_Number

Num_People Food_Item Price
1 王小明 0912-345-678 2025-10-13 18:00 5 2 牛排 500
1 王小明 0912-345-678 2025-10-13 18:00 5 2 沙拉 100
1 王小明 0912-345-678 2025-10-13 18:00 5 2 果汁 80
這樣資料是有重複的,所以接下來要第二正規化
會拆成 顧客表 菜單表 預約明細表
(1) 顧客資料表 Customer
欄位名稱 資料型態 說明
CUSTOMER_ID INT (PK) 顧客編號
NAME VARCHAR(50) 顧客姓名
PHONE VARCHAR(20) 電話
EMAIL VARCHAR(50) 信箱
ADDRESS VARCHAR(100) 地址

(2) 預約資料表 Reservation
欄位名稱 資料型態 說明
RESERVATION_ID INT (PK) 預約編號
CUSTOMER_ID INT (FK) 顧客編號
RESERVATION_DATE DATE 日期
TIME VARCHAR(10) 時間
TABLE INT 桌號
PEOPLE_AMOUNT INT 人數
TOTAL DECIMAL(10,2) 總金額

(3) 菜單資料表 Menu
欄位名稱 資料型態 說明
MENU_ID INT (PK) 菜單編號
NEAL VARCHAR(50) 餐點名稱
TYPE VARCHAR(30) 類別(主食、飲料等)
PRICE DECIMAL(10,2) 單價
DETAIL VARCHAR(100) 說明

(4) 預約餐點關聯表 Reservation_Detail
欄位名稱 資料型態 說明
RESERVATION_ID NUMBER (PK,FK) 預約編號
MENU_ID NUMBER (FK) 餐點編號
AMOUNT NUMBER 數量

因為每個欄位都是依賴主鍵,所以這也是完成第三正規化的表格


上一篇
Day 27 前置作業
下一篇
Day 29 實作2
系列文
跟著生成式AI一起從零開始學習資料庫,30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言