8.6 關聯實體、歷程資料與狀態
資料分析與資料建模
8.6.1 解析多對多關係
多對多關係若具有自身資訊,通常應建立關聯實體。評審與報名之間的分派具有分派時間與狀態,因此可以建立REVIEW_ASSIGNMENT,分別連結評審與報名。
text
erDiagram
REVIEWER ||--o{ REVIEW_ASSIGNMENT : 接受
REGISTRATION ||--o{ REVIEW_ASSIGNMENT : 被分派
REVIEW_ASSIGNMENT {
string AssignmentId PK
datetime AssignedAt
string Status
}Mermaid 圖形預覽Mermaid 11.12
查看並複製 Mermaid 程式碼
erDiagram
REVIEWER ||--o{ REVIEW_ASSIGNMENT : 接受
REGISTRATION ||--o{ REVIEW_ASSIGNMENT : 被分派
REVIEW_ASSIGNMENT {
string AssignmentId PK
datetime AssignedAt
string Status
}8.6.2 保存目前狀態或狀態歷程
一個Status屬性只能說明目前狀態;若需求要回答「誰在何時由哪個狀態改成哪個狀態」,就需要另建歷程資料。是否保存完整歷程必須由稽核、追蹤或業務需求決定。
舉例來說,在Case M01中,DR-06已要求保存評分更正申請、處理人員、處理時間、更正前後內容及處理結果,因此不能只在評分上保留目前分數而刪除更正紀錄。
8.6.3 交易資料與參考資料
交易資料記錄業務事件,例如報名、分派與評分;參考資料則提供相對穩定的分類或允許值,例如狀態代碼。
兩者應區分,但不必在分析階段就決定每組允許值是否建立獨立資料表。
8.6.4 避免重複與矛盾
同一業務事實若在多處保存,可能產生不一致。例如把指導教師姓名複製到每筆評審分派,教師資料變更時便可能出現不同版本。資料模型應保存必要關係,並明確決定哪些資訊是來源、哪些是由其他資料生成的快照、以及哪些資料是需使用時才從其他資料表來生成該筆資料。