子表物件
子表物件
前面提到過想在物件中返回子表時,可以使用壓縮成一個字串的子表欄位,一般適合資料比較簡單的場合。
另一種方式是用$subobj
來定義子表物件。
例如在獲取訂單時,同時返回訂單日誌,設計介面如下:
Ordr.get() -> {id, ..., @orderLog?}
返回
orderLog: {id, tm, dscr, action} 訂單日誌子表。
示例
{id: 1, dscr: "換輪胎及洗車", ..., orderLog: [
{id: 1, tm: "2016-1-1 10:10", action: "CR", dscr: "建立訂單"},
{id: 2, tm: "2016-1-1 10:20", action: "PA", dscr: "付款"}
]}
上面介面原型描述中,欄位orderLog前面的"@"標記表示它是一個陣列,在返回值介紹中列出了它的資料結構。
實現:
class AC1_Ordr extends AccessControl
{
protected $subobj = [
"orderLog" => ["sql"=>"SELECT ol.* FROM OrderLog ol WHERE ol.orderId=%d"]
];
}
用選項"sql"定義子表的查詢語句,其中用"%d"來表示主表主鍵,這裡即Ordr.id欄位。
定義子表物件時,還可設定一些選項,比如上面設定等價於:
"orderLog" => ["sql"=>..., "wantOne"=>false, "default"=>false]
選項"wantOne"表示是否只返回一行。預設是返回一個物件陣列,如
[{id, tm, ...}]
。 如果選項"wantOne"為true,則結果以一個物件返回即{id, tm, ...}
, 適用於主表與子表一對一的情況。選項"default"與虛擬欄位(vcolDefs)上的"default"選項一樣,表示當get或query介面未指定"res"引數時,是否預設返回該欄位。 一般應使用預設值false,客戶端需要時應通過res引數指定,如
Ordr.query(res="*,orderLog")
.
注意:查詢子表作為子物件欄位是不支援分頁的。如果子表可能很大,不要設計使用子表欄位或列表欄位,而應直接用子表的query方法來取,如開放介面"OrderLog.query"。
相關文章
- 根據父表查詢子表
- 父子表開發應用模式模式
- SQLite中的運算子表示式SQLite
- PostgreSQL - 外部表、分佈鍵、父子表SQL
- Vue匯出資料到Excel電子表格VueExcel
- hyperf關聯子表查詢主表資料
- Oracle 商務智慧電子表格外掛Oracle
- smartbi電子表格的實現步驟
- 使用smartBI製作電子表格的步驟
- Smartbi電子表格軟體產品的由來
- 電子表格軟體能解決什麼問題?
- 正規表示式子表示式程式碼例項
- 用MODEL從句進行電子表格計算
- 構建基於React18的電子表格程式React
- 【圖解】Web前端實現相似Excel的電子表格圖解Web前端Excel
- 在c#如何:使用 COM Interop 建立 Excel 電子表格C#Excel
- 主子表drop table constraints cascade的測試AI
- 主表子表動態欄位儲存實現方式總結
- 如何在.NET電子表格應用程式中建立流程圖流程圖
- 從服務端生成Excel電子表格(GcExcel + SpreadJS)服務端ExcelGCJS
- Smartbi電子表格軟體架構與差異化特色架構
- 在VB中編輯資料庫和電子表格 (轉)資料庫
- 關於 Google 電子表格無法訪問的問題Go
- 智慧電子表格,為你輕鬆製作財務報表
- 電子表格實戰錦囊:巧用稀疏陣列是關鍵!陣列
- 查詢外來鍵約束、子表欄位等資訊的SQLSQL
- 參考分割槽子表使用GET_DEPENDENT_DDL結果異常
- 從服務端生成Excel電子表格(Node.js+SpreadJS)服務端ExcelNode.js
- Gris是一個混合資料庫/電子表格的開源工具資料庫開源工具
- 電子表格軟體與一站式BI的區別
- 世界上第一套電子表格軟體:VisiCalc
- 世界上第一套電子表格軟體-VisiCalc
- Google文書處理電子表格 潛入Web辦公市場GoWeb
- 雙向關係的LOCALCMP中的插入子表資料的問題
- 通過在Oracle子表外來鍵上建立索引提高效能Oracle索引
- 電子表格轉身購物車:三步輕鬆實現
- excel-Spreadsheets:讀取Excel電子表格資料的Java原始碼ExcelJava原始碼
- 無索引的外來鍵之主表子表DML操作實驗及結論索引