智解家 Domain Model Spec
1. Teacher(老師)
- 屬性: 名稱、介紹、頭像
- 類型:
- 真人老師(林青、鍾禾等)
- 虛擬身份(「智解家」— 用於不具名師資群或買斷題目)
- 關係: 一位 Teacher 創作 1..N 個 Question
2. Course(課程)
- 定位: 平台的最小販售單位,用戶訂閱一個 Course 即解鎖其下所有內容
- 未來擴充: 可能推出 Bundle(多 Course 組合包)
- 內容可來自多位 Teacher 的題目(如「綜合解題班」= 8 位老師各出題)
- 內容結構分兩種模式:
模式 A — 無章節(Flat)
- Course 下直接是一組 Questions,無排序,可能帶標籤
模式 B — 章節地圖(Structured)
- Course 下有 Chapter → Section 的兩層結構
- Section 內含:文字講解 / 講義 + 關聯的 Questions
- 對用戶而言,章節地圖 = 目錄,每個 Section = 一個可切換的頁面
- 未來目標:所有 Course 遷移到模式 B
3. Chapter(章)
- 僅存在於模式 B
- 屬於一個 Course,含 1..N 個 Sections
4. Section(節)
- 僅存在於模式 B
- 屬於一個 Chapter
- 內含:文字講解 / 講義 + 關聯的 Questions
5. Question(題目)
- 創作者: 1 位 Teacher(UI 永遠顯示,不因收錄在哪個 Course 而改變)
- 歸屬: 可被 1..N 個 Course 收錄
- 歸屬方式依模式不同:
- 模式 A:Question 直接關聯 Course
- 模式 B:Question 關聯 Section,透過 Section → Chapter → Course 間接歸屬
- 同一 Question 在不同 Course 中可出現在不同的章節位置
關係總覽
Teacher ──1:N──▶ Question ◀──N:M── Course(模式 A:直接關聯)
Teacher ──1:N──▶ Question ◀──N:1── Section ◀──N:1── Chapter ◀──N:1── Course
(模式 B:間接歸屬)
⚠️ 待討論:Teacher ↔ Course 是否需要直接關聯?
現狀: 大多數 Course 事實上由一位老師主導(如「林青的行政法」),Course 頁面也展示該老師的頭像與介紹。但從資料結構看,這層關係可透過 Question 的創作者反推。
Trade-off:
- 不建直接關聯 — 資料模型更乾淨,Teacher 和 Course 的關係由 Question 推導。但「誰開了這堂課」需要額外查詢邏輯
- 建直接關聯 — 加一個 Course.teachers 欄位(N:M),方便前端直接顯示課程的老師資訊,也能處理「綜合解題班有 8 位老師」的情境。可再區分角色(主講 / 參與出題)