敏捷開發下, 由 User Story 中設計: 保證資料一致性的資料庫表結構
阿新 • • 發佈:2018-12-24
過往的資料庫設計思維∵強調整體,主要是期望藉由所謂的整體,使的資料庫設計可保證資料的 Integrity。
但這樣的思維,在面向物件的世界裡,往往因類設計時,類責任的不明確,而因為物件的存取破壞了資料的 Integrity。
所以,資料庫設計真正的重點,不在所謂的 “整體”。而在 “明確”。
我在產品級敏捷,設計了一個實踐;Story 場景樹。
藉由 Story 場景樹,分析每個 Story下的場景,明確界定 Entity 校驗的緯度,所以,每個 Entity 的定義便是明確的,每個 Entity 間的關係也是明確的。
所以,由各 Story 所分析出的 Entity,Value Object
Story 場景樹,輕量級,視覺化,可適用於敏捷開發下的團隊協作。
Story 場景樹主要是分析:Story 內部的活動,活動後所生成的 Entity,Entity 校驗的緯度,Story 呼叫的介面。
所以,從 Story 場景樹中,自然便會得知各 Entity 是從何而來?該如何定義(校驗)?對外的依賴為何?
有了上述的資訊,自然可分析出各 Entity 間是 “關聯” 或 “包含”的關係,而可分析出資料表中的 Primary/Forient Key。
上述,是從領域 “廣度” 的面向,由 Entity 間設計資料表
另一方面,各 Entity 都會有 Properties 來描述。Properties 便會形成 Value Objecs。而 Entity 的 Value Objects 便形成由領域 “深度”,設計資料表結構;也許就會形成 record 的欄位設計。
當然,更講究的會再進行正規化的設計。