在學校課堂練習時,訂單資料表可能只有 order_head、order_body 兩張而已。但到了職場上,老闆叫你「從後台撈訂單資料做報表」,你會發現 WooCommerce 的訂單資料被拆在一堆 WordPress 核心資料表裡面,再加上一些 WooCommerce 自己的資料表,結構跟你熟悉的「訂單表頭/表身」完全不一樣。 我們在" WordPress 加上 Woocommerce 電子商務,如何從後台撈出商品資料? ",已經知道如何從後台撈出商品資料,現在我們來看看如何從後台撈出[訂單資料]。 首先要確定你的 Woocommerce 是舊的還是 HPOS (High Performance Order Storage 高效能訂單儲存) 的結構。 HPOS 高效能訂單儲存是什麼? 它是 WooCommerce 把「訂單」從 WordPress 的 posts/postmeta 架構搬出去,改用專用訂單資料表來儲存的一套機制(以前叫做 Custom Order Tables)。它採用 WooCommerce 的 CRUD(Create, Read, Update, Delete) 設計,讓訂單查詢更符合電商需求、也更好擴充與最佳化效能。 以往 WooComme…
我們在之前的文章探討過很多[產品/訂單]的實作練習 : 公司的產品資料與訂單 B2B網站的資料流流向圖 這些資料表結構其實都很簡單,就是產品資料表、產品類別資料表、訂單表頭資料表、訂單表身資料表。但是在實際應用上,到了公司上班以後,當老闆叫你從後台撈資料做報表時,你會發現怎麼跟我在學校學的都不一樣呢? 就好像下面這幅漫畫描述的一樣 : 學生會抱怨「老師教的都是沒用的東西」,因為上班時會發現怎麼跟學校學的差這麼多? 其實老師心裡想的是 : 「我教這麼簡單的內容,你都學不會了,我教企業現場應用的東西,不是自找麻煩嗎?」 現在,我們就來自找麻煩一下,看看許多中小企業在使用的 WordPress 平台下,使用 Woocommerce 電子商務的資料表是長什麼樣子? 我們將使用 InfinityFree 的免費平台安裝 WordPress 跟 Woocommerce ,安裝過程就不在這邊贅述,有空再另文說明。 從 phpMyAdmin 管理介面可以看到 WordPress 與 Woocommerce 的一大堆資料表如下 : 我們的目的不是要研究全部資料表,我們只把焦點放在跟 Woocommerce 有關的資料表上。 Woocommerce 由於要跟 WordPress 整合…
兩年前這篇" ChatGPT會不會寫MySQL指令? ",還在觀望ChatGPT是否真的可以寫MySQL指令,現在這些生成式AI的功能已經超乎想像了。 現在來使用 Perplexity + Comet 瀏覽器,嘗試讓他去規劃 MySQL 資料庫。 Perplexity 網址 : https://www.perplexity.ai/ Perplexity 推薦網址 (可以獲得免費專業版) : https://plex.it/referrals/W5FVMTVU Comet 瀏覽器網址 : https://www.perplexity.ai/comet/ Perplexity 是一家AI服務公司,他本身並沒有真正開發生成式AI,而是使用開源的大語言模型再去進行後續的微調和增強。此外,Perplexity 也整合了包括OpenAI的GPT-5、Claude、Llama 3等主流模型,並將這些模型與即時搜尋和多種技術結合,打造其AI搜尋產品和服務。 並且 Perplexity 推出 Comet 瀏覽器,將AI代理的功能整合在瀏覽器內,讓使用者可以直接讓AI代理自動處理瀏覽過程。 我們現在就來測試使用 Perplexity + Comet 瀏覽器,是否能夠自動規劃 …
MySQL 提供了數種進階功能來擴展資料庫的邏輯處理能力,其中 Trigger(觸發器)、Stored Function(儲存函式) 與 Stored Procedure(儲存程序) 是三種常用的工具,分別用於不同的情境,讓資料庫更具靈活性與自動化能力。
這篇的重點要談到以下幾個 : (1)資料表單設計的一些實務程序。 (2)資料欄位中代碼的設計。 (3)資料表單中外鍵約束的例外。 (4)資料表單有時需要違反正規化。 (5)資料表單中有時還是需要必要的冗餘資料。 在前面 這篇 已經談過將實體表單轉換為資料庫表單,但是並沒有說明過程。這篇來說明一下過程,並且再修正一下之前的答案。 要把紙面資料電子化,先把紙面資料的欄位整理出來,然後再看各欄位適合放在哪些資料表單中。我們從上面「出貨單」,看到以下的資訊 : (1) 公司資訊 (公司名稱、電話、傳真、地址) (2) 客戶資訊 (客戶名稱、電話、傳真、送貨地址) (3) 出貨日期、出貨單號 (4) 產品資訊 (產品編號、品名及規格、數量、單價、金額、備註) (5) 經手人資訊 (助理、業務) (6) 備註 (7) 簽收資訊 (簽收狀態、誰簽收、簽收日期) 通常「出貨單」資料都會從「訂單」資料轉過來,因此之前文章產生以下表單 客戶資料表 customer(cusno, cusname, cuszipcode, cusaddress, custel, cusfax, cuscontact) 職員資料表 employee(empno, empname, deptno, emptitle) 公…
這個練習是從前面的練習延伸而來 : 實作練習 : PHP + Stored Procedure + Stored Function + Trigger 實作練習 : PHP + Stored Procedure + Stored Function + Trigger(二) 第一個練習在建立訂單時沒有檢查庫存;第二個練習加入「檢查庫存」,但是當庫存不足時,並不方便檢查,也不方便完成後續處理。 因此這篇文章要開始來探討,有哪些地方需要修改? 才能讓無法完成的訂購順利完成? 我們先看看原有資料表單 : -- 產品資料表 CREATE TABLE Products ( ProductID INT AUTO_INCREMENT PRIMARY KEY, ProductName VARCHAR(100) NOT NULL, Price DECIMAL(10, 2) NOT NULL, Stock INT NOT NULL ); -- 訂單資料表 CREATE TABLE Orders ( OrderID INT AUTO_INCREMENT PRIMARY KEY, OrderDate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, Custo…