實作練習:員工午餐訂購系統的 Stored Procedure、Stored Function 與 Trigger 設計
員工午餐訂購系統是一個常見的小系統,應該包含[訂餐系統]、[訂單管理系統]、[員工部門管理系統]、[合作店家與菜單管理系統] ,讓管理者可以維護員工、部門、合作店家與菜單,讓員工每天可以選擇餐廳與餐點,在中午前彙整所有訂單,每筆訂單要記錄訂購人、餐點、數量、價格與狀態,在月底可以統計每位員工的餐費,作為薪資扣款依據。 系統規模雖然小,但是已經具備線上電商的雛形。 這篇文章將使用 stored procedure、stored function、以及 trigger 來實作[訂餐系統]的程序,這是員工午餐訂購系統的核心作業。 本篇完成三件事: (1)使用 Trigger 防止庫存出現負數 (2)使用 Stored Function 查詢餐點剩餘庫存 (3)使用 Stored Procedure 完成訂餐扣庫存流程 [訂餐系統]需要考量以下幾個需求 : (1) 員工訂餐後,合作店家必須能夠供應,這就牽涉到餐點庫存管理。 (2) 餐點並非無限量供應,這就牽涉到訂單確認的先後順序。 (3) 一筆訂單有多項餐點時,又有多種處理方式 ~ 部分餐點庫存不足時,是否先確認有庫存的餐點? 還是整筆訂單取消? 還是由員工選擇? (4) 合作店家供餐時,是否允許任意分批出餐? 還是必須同筆項目一起出…