- 註冊時間
- 2006-3-13
- 最後登錄
- 2025-1-10
- 在線時間
- 673 小時
- 閱讀權限
- 200
- 積分
- 417
- 帖子
- 1107
- 精華
- 0
- UID
- 2
  
|
1. 如果資料庫本身不支援 Cascading delete, 自己要記得做。
2. 如果 Master table 的 Key Field 是採用電腦自動編號, 應使用程式自動編號, 而不要依賴資料庫的 AutoInc 形態的欄位。
3. Master table 的 Key Field 應該是儲存以後就不能修改, (否則 Detail table 將失去關連)
4. 當 Master table 新增一筆資料時, 必須先將這筆資料儲存之後才允許新增 Detail 細項, 以免在網路多人環境下易造成 Key Violation.
5. Master table 經常會有一個 (以上) 的加總欄位, 其值是 Detail table 某欄位的總和, 欲實作此欄位, 必須在每次 Detail table 的 AfterPost 之後自行加總, 再將總和丟給 Master table. 加總的方法: 可利用一迴圈或是一個 TQuery, 若為 server based 資料庫, 可利用 trigger 為之 (每當 Detail table 有 Insert 或 Update 等動作時就重新加總。
6. DisableControls 會切斷 Table 與 DataSource 之間的連接, 而 Detail Table 是透過 MasterSource 屬性來取得資料, 所以在處理 Master-Detail Table 時不可使用 DisableControls. 如果要加快顯示速度 (例如: TDBGrid), 應尋求其他的方法解決。 |
|