XMLproduct(description XML) 替代多表規範化設計(產品表 + 圖片表 + 分類表...)。同一用戶體驗,左側 DB2 PureXML,右側 傳統 RDBMS (模擬 MySQL),下方實時顯示對應代碼片段。

| 功能點 | DB2 PureXML 方案 | 傳統 RDBMS 方案 |
|---|---|---|
| 分類/品牌索引 | 創建 VIEW 封裝 XQuery,應用層僅 SELECT * FROM Categories | SELECT DISTINCT category FROM sqlproduct,Schema 變更需 ALTER TABLE |
| Schema 演化(新增子分類) | XML 文檔直接加屬性,零 Schema 變更,零代碼修改 | 需加列、重導數據、改查詢、改 PHP DOM 解析、停機維護 |
| 商品列表頁 | XQuery 直接輸出 HTML 片段,含圖片、名稱、價格,PHP 僅 2 行 | JOIN 兩表 + PHP 迴圈拼接 HTML,中間層維護渲染邏輯 |
| 商品詳情頁 | 存儲過程 getProduct 封裝完整 XQuery 輸出 HTML,PHP 單行調用 | 兩次查詢 + PHP/HTML 混合模板 + 額外圖片查詢 |
| 購物車 Web Service | XQuery 內聯業務邏輯(價格計算、稅費、匯總),參數通過 XML 類型傳遞,註冊為 SOAP 服務 | 無對應實現,需 PHP 迴圈逐筆查庫、手動計算、自行拼裝 WSDL |
| 採購訂單/發票 | 單一 XQuery 跨採購訂單與產品表聯接,直接生成發票 HTML | CLOB 存儲訂單 + DOM 解析 + 逐筆查詢產品名 + PHP 拼接 |
| 訂購歷史報表 | SQL/XML 排序 + XQuery 格式化輸出,單語句完成 | 查詢 CLOB + DOM 迭代 + N+1 查詢產品名,性能與代碼雙重劣勢 |
CREATE UNIQUE INDEX prod_pid ON XMLproduct(description)
GENERATE KEY USING XMLPATTERN '/product/@pid' AS SQL VARCHAR(10);
CREATE INDEX prod_name ON XMLproduct(description)
GENERATE KEY USING XMLPATTERN '/product/description/name' AS SQL VARCHAR(128);
CREATE INDEX prod_category ON XMLproduct(description)
GENERATE KEY USING XMLPATTERN '/product/description/category' AS SQL VARCHAR(128);
CREATE INDEX prod_brand ON XMLproduct(description)
GENERATE KEY USING XMLPATTERN '/product/description/brand' AS SQL VARCHAR(128);
屬性與元素均可建索引,單行多索引項特性天然適配重複元素路徑。
--enable-module=so)。php.ini 加載 php_ibm_db2.dll、php_soap.dll。httpd.conf 配置 LoadModule php5_module、AddType application/x-httpd-php .php、PHPIniDir。apachectl 啟動腳本中 source db2profile 初始化 DB2 環境。CREATE DATABASE silver USING CODESET utf-8 TERRITORY us。setup.php 自動建表、導入示例數據。PureXML 讓 PHP 開發者擺脫「對象-關係-映射」泥沼,將 XML 從邊緣帶入核心。對於 SMB 級應用,這意味著更少的代碼、更靈活的數據模型、更從容的業務演化——這正是敏捷開發的本質。