opencode-workflow/skills/data-modeling/README.zh-TW.md

28 lines
1.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 資料建模 (Data Modeling) 知識合約指南
## 概述
`data-modeling` 是知識合約用來定義資料庫結構、分區鍵、索引、查詢模式、反正規化策略、TTL/快取與資料所有權。供 `design-architecture` 在設計資料模型時參考。
## 核心原則
- 資料模型必須由查詢與寫入模式驅動,而非理論純度
- 每個資料表必須有明確目的,可追溯到 PRD 需求
- 索引必須有明確的查詢模式支撐
- 資料所有權必須明確:每筆資料只屬於一個服務
## 設計重點
- **資料表定義**:資料表名稱、目的、欄位定義、主鍵、外鍵關係
- **索引設計**:索引必須有查詢模式支撐,避免 speculation 索引
- **分區鍵**:分散式資料儲存的分區鍵選擇、熱分割風險
- **關係**One-to-one、One-to-many、Many-to-many(含義與 cascade 行為)
- **反正規化策略**:何時反正規化、資料同步機制、過時容忍度
- **TTL 與快取**Ephemeral 資料的 TTL、快取類型與失效策略
- **資料所有權**:每筆資料的唯一擁有服務、其他服務透過 API 或事件存取
## 知識合約職責
- 提供資料建模的理論指引
- 不直接產生資料庫結構定義(由 `design_database_schema` 負責格式)
## 不應做的事
- 不替特定資料庫選擇資料表名稱或欄位
- 不定義具體的索引名稱或類型
- 不產生 Schema 檔案