第三方金流串接 – 資料庫規劃

更新於 發佈於 閱讀時間約 8 分鐘

※ 架構設計:

raw-image


※ 資料庫規劃 — 產品表:

  • id:流水號,唯一代替產品名稱的辨識代碼,AUTO_INCREMENT。
  • name:VARCHAR(255),NOT NULL。
  • amount:INTEGER(整數),UNSIGNED(不能是負數)。
  • description:TEXT,描述產品。
  • pre_order:作為金流交易賣出物品時的預扣額度。

※ 資料庫中建立產品資料庫:

  • 在src資料夾內建立一個database的資料夾:
raw-image
  • 在database資料夾中建立products.sql檔案:
raw-image
  • 在 MySQL 中建立名為 products 的資料表內容:
CREATE TABLE `products` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` varchar(255) NOT NULL DEFAULT '',
`amount` int UNSIGNED NOT NULL DEFAULT 0,
`description` text,
`pre_order` int UNSIGNED NOT NULL DEFAULT 0,
`price`int UNSIGNED NOT NULL DEFAULT 0
);

程式碼說明:

  • CREATE TABLE products:這句命令表示創建一個名為 products 的資料表。
  • id:整數型欄位,不允許負數 (UNSIGNED),不能為空 (NOT NULL),自動遞增 (AUTO_INCREMENT),並設置為主鍵 (PRIMARY KEY)。
  • name:變長字元串 (VARCHAR),最大長度為 255 字元,不能為空,預設值為空字串 ('')。
  • amount:整數 ,不允許負數(UNSIGNED),不能為空,預設值為 0。
  • description:文字型欄位 (TEXT),用於存儲產品描述。
  • pre_order:整數 ,不允許負數(UNSIGNED),不能為空,預設值為 0。

※ 打開MySQL Workbench新增products 表格

專案要和資料庫連線

raw-image


刪除已有表格

DROP TABLE IF EXISTS `products`;

建立新的表格

CREATE TABLE `products` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(255) NOT NULL DEFAULT '',
`amount` INT UNSIGNED NOT NULL DEFAULT 0,
`description` TEXT,
`pre_order` INT UNSIGNED NOT NULL DEFAULT 0
);


raw-image


新增price欄位

ALTER TABLE `products` ADD COLUMN `price` int UNSIGNED NOT NULL DEFAULT 0;
raw-image
raw-image


※ 資料庫規劃 — 訂單表:

raw-image


  • id:VARCHAR(20) NOT NULL PRIMARY KEY。(大部分金流的 API,它們的 ID 都要求是一個亂數的字串)
  • total:INT UNSIGNED NOT NULL DEFAULT 0。
  • created_at:DATETIME NOT NULL DEFAULT NOW()。
  • updated_at:DATETIME NOT NULL DEFAULT NOW()。
  • payment_provider:ENUM('PAYPAL', 'ECPAY')。
  • payment_way:ENUM('CSV', 'CC', 'ATM', 'PAYPAL')。
  • status:ENUM('WAITING', 'SUCCESS', 'FAILED', 'CANCEL')。
  • contents:JSON DEFAULT NULL (商品內容[{商品ID,商品數量,商品價格}])

※ 訂單:產品的對應表

  • product_id
  • order_id

※ 資料庫中建立訂單資料庫:

  • 在database資料夾內建立orders.sql檔案:
raw-image
  • 在 MySQL 中建立名為orders 的資料表內容:
CREATE TABLE `orders` (
`id` varchar(20) NOT NULL PRIMARY KEY COMMENT '大部分金流的API它們的ID都要求是一個亂數的字串',
`total` int unsigned NOT NULL DEFAULT 0,
`created_at` datetime NOT NULL DEFAULT now(),
`updated_at` datetime NOT NULL DEFAULT now(),
`payment_provider` enum('PAYPAL', 'ECPAY'),
`payment_way` enum('CVS', 'CC', 'ATM', 'PAYPAL'),
`status` enum('WAITING', 'SUCCESS', 'FAILED', 'CANCEL'),
`contents` JSON DEFAULT NULL COMMENT '商品內容 [{商品ID, 商品數量, 商品價格}]'
);

程式碼說明:

  • CREATE TABLE orders:這句命令表示創建一個名為 orders 的資料表。
  • id:VARCHAR(20) NOT NULL PRIMARY KEY,並帶有註解「大部分金流的 API 它們的 ID 都要求是一個亂數的字串」,表示每個訂單的唯一識別碼。
  • total:INT UNSIGNED NOT NULL DEFAULT 0,表示訂單的總金額,預設為 0。
  • created_at:DATETIME NOT NULL DEFAULT NOW(),表示訂單創建的時間,預設為當前時間。
  • updated_at:DATETIME NOT NULL DEFAULT NOW(),表示訂單最後更新的時間,預設為當前時間。
  • payment_provider:ENUM('PAYPAL', 'ECPAY'),表示支付提供商,可選擇 PAYPAL 或 ECPAY。enum(枚舉型別):通常用於表示相關的值集合。
  • payment_way:ENUM('CVS', 'CC', 'ATM', 'PAYPAL'),表示支付方式,可選擇 CVS、信用卡、ATM 或 PAYPAL。
  • status:ENUM('WAITING', 'SUCCESS', 'FAILED', 'CANCEL'),表示訂單狀態,可選擇等待、成功、失敗或取消。
  • contents:JSON DEFAULT NULL,並帶有註解「商品內容 [{商品ID, 商品數量, 商品價格}]」,表示訂單中的商品內容,預設為空。
raw-image


留言
avatar-img
留言分享你的想法!
avatar-img
奧莉薇走在成為後端工程師之路上
18會員
141內容數
全端網頁開發專業知識分享
2025/04/26
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
2025/04/26
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
2025/04/26
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
Thumbnail
2025/04/26
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
Thumbnail
2025/04/10
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可
Thumbnail
2025/04/10
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
※ 架構設計 ※ 資料庫規劃 id:流水號,唯一代替產品名稱的辨識代碼,AUTO_INCREMENT。 name:VARCHAR(255),NOT NULL。 amount:INTEGER(整數),UNSIGNED(不能是負數)。 description:TEXT,描述產品。 pre_
Thumbnail
※ 架構設計 ※ 資料庫規劃 id:流水號,唯一代替產品名稱的辨識代碼,AUTO_INCREMENT。 name:VARCHAR(255),NOT NULL。 amount:INTEGER(整數),UNSIGNED(不能是負數)。 description:TEXT,描述產品。 pre_
Thumbnail
他眼前跳出兩個選項,分別是「系統交易」和「交易所」 進化藥劑(動物)(稀有):三千金元幣。
Thumbnail
他眼前跳出兩個選項,分別是「系統交易」和「交易所」 進化藥劑(動物)(稀有):三千金元幣。
Thumbnail
 大家應該都有印象,當你是新手時,在社群不小心貼出你的對帳單時,都會有人提醒你把帳號碼掉,而且很多大咖或者進出金額大的人不但會碼掉帳戶,還會碼掉張數,因為怕別人找到他進出的分點。   那真的找的到嗎?可以的,因為台灣證交所跟櫃買中心甚至興櫃都有提供查詢的網站,照片如下,上市以2330為例,上
Thumbnail
 大家應該都有印象,當你是新手時,在社群不小心貼出你的對帳單時,都會有人提醒你把帳號碼掉,而且很多大咖或者進出金額大的人不但會碼掉帳戶,還會碼掉張數,因為怕別人找到他進出的分點。   那真的找的到嗎?可以的,因為台灣證交所跟櫃買中心甚至興櫃都有提供查詢的網站,照片如下,上市以2330為例,上
Thumbnail
【複委託資訊】寫電子書時整理到這章節,列一下給版友參考,複委託交易前,請記得先談過手續費,以下列的官網查得到的資訊,留言區有網址參考。 ▇2024年的複委託優惠 優惠會隨時間而變,請讀者自行更新資訊,只列幾個市面常見的券商當範例。 ▇1.永豐證券,參考新聞網站 (1)定期定額:買入手
Thumbnail
【複委託資訊】寫電子書時整理到這章節,列一下給版友參考,複委託交易前,請記得先談過手續費,以下列的官網查得到的資訊,留言區有網址參考。 ▇2024年的複委託優惠 優惠會隨時間而變,請讀者自行更新資訊,只列幾個市面常見的券商當範例。 ▇1.永豐證券,參考新聞網站 (1)定期定額:買入手
Thumbnail
本專欄專注於技術分析將交易經驗轉化為程式,實現全自動化交易,免去人工干預。最重要的是堅守紀律,確保長期穩定的執行。同時運用XQ及Excel工具進行深入分析,挖掘市場數據的規律性,幫助優化投資決策。若有問題歡迎至紀律投資官方LINE @zbc1052c詢問。
Thumbnail
本專欄專注於技術分析將交易經驗轉化為程式,實現全自動化交易,免去人工干預。最重要的是堅守紀律,確保長期穩定的執行。同時運用XQ及Excel工具進行深入分析,挖掘市場數據的規律性,幫助優化投資決策。若有問題歡迎至紀律投資官方LINE @zbc1052c詢問。
Thumbnail
繼之前的台灣和泰國提領紀錄之後,這次要記錄的是中國提領。
Thumbnail
繼之前的台灣和泰國提領紀錄之後,這次要記錄的是中國提領。
Thumbnail
這篇文章是關於存款帳戶及疑似不法或異常交易的管理辦法。其中解釋了衍生管制帳戶的定義以及設置目的。同時提到當客戶被其他金融機構列為警示帳戶時,名下所有銀行帳戶將被列為衍生管制帳戶,並且會受到限制措斷。
Thumbnail
這篇文章是關於存款帳戶及疑似不法或異常交易的管理辦法。其中解釋了衍生管制帳戶的定義以及設置目的。同時提到當客戶被其他金融機構列為警示帳戶時,名下所有銀行帳戶將被列為衍生管制帳戶,並且會受到限制措斷。
Thumbnail
2016/8/14-8/20   第一筆注冊資金,錯誤地到帳了,台灣的會計把錢從台灣母公司直接匯出,而不是從境外投資公司匯出,當天被我退回,預估要等下週才能進行資本金結匯。   外匯管理局對於資本金結匯有些管制,我遇到的第一個難題是「保證金不可以結匯」,目前的保證金
Thumbnail
2016/8/14-8/20   第一筆注冊資金,錯誤地到帳了,台灣的會計把錢從台灣母公司直接匯出,而不是從境外投資公司匯出,當天被我退回,預估要等下週才能進行資本金結匯。   外匯管理局對於資本金結匯有些管制,我遇到的第一個難題是「保證金不可以結匯」,目前的保證金
Thumbnail
在此系列文章,我們將討論如何在Google Colab的環境下,撈取所有台美股的股票代碼,並獲取相關細節,最後將獲取的資訊存取於SQLite資料庫中。在此篇文章中,我們先來探討如何獲取所有的股票代碼。 步驟1 於stocksymbol註冊帳號並獲取API金鑰。 於Colab筆記本中安
Thumbnail
在此系列文章,我們將討論如何在Google Colab的環境下,撈取所有台美股的股票代碼,並獲取相關細節,最後將獲取的資訊存取於SQLite資料庫中。在此篇文章中,我們先來探討如何獲取所有的股票代碼。 步驟1 於stocksymbol註冊帳號並獲取API金鑰。 於Colab筆記本中安
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News