1. 程式人生 > >敏捷開發下, 由 User Story 中設計: 保證資料一致性的資料庫表結構

敏捷開發下, 由 User Story 中設計: 保證資料一致性的資料庫表結構

過往的資料庫設計思維∵強調整體,主要是期望藉由所謂的整體,使資料庫設計可保證資料的 Integrity

但這樣的思維,在面向物件的世界裡,往往因類設計時,類責任的不明確,而因為物件的存取破壞了資料的 Integrity

所以,資料庫設計真正的重點,不在所謂的整體。而在明確

我在產品級敏捷,設計了一個實踐;Story 場景樹。

藉由 Story 場景樹,分析每個 Story下的場景,明確界定 Entity 校驗的緯度,所以,每個 Entity 的定義便是明確的,每個 Entity 間的關係也是明確的。

所以,由各 Story 所分析出的 EntityValue Object

便可形成與資料表相匹配的資料表結構,以提升資料的 Integrity

Story 場景樹,輕量級,視覺化,可適用於敏捷開發下的團隊協作。

Story 場景樹主要是分析:Story 內部的活動,活動後所生成的 EntityEntity 校驗的緯度,Story 呼叫的介面。

所以,從 Story 場景樹中,自然便會得知各 Entity 是從何而來?該如何定義(校驗)?對外的依賴為何?

有了上述的資訊,自然可分析出各 Entity 間是關聯包含的關係,而可分析出資料表中的 Primary/Forient Key

上述,是從領域  “廣度的面向,由 Entity 間設計資料表

(Table)

另一方面,各 Entity 都會有 Properties 來描述。Properties 便會形成 Value Objecs。而 Entity 的 Value Objects 便形成由領域深度,設計資料表結構;也許就會形成 record 的欄位設計。

當然,更講究的會再進行正規化的設計。